From 7ea3cb71f3bfb04ccc0b8f50e9758526ccb33f2d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 26 Feb 2025 20:23:52 +0200 Subject: [PATCH] chore(server/test): password protected share --- integration-tests/db/document.db | Bin 688128 -> 688128 bytes package-lock.json | 155 +++++++++++++++++++++++++++++++ package.json | 10 +- src/share/routes.spec.ts | 20 ++++ 4 files changed, 181 insertions(+), 4 deletions(-) create mode 100644 src/share/routes.spec.ts diff --git a/integration-tests/db/document.db b/integration-tests/db/document.db index 14cb1f63cdf7e5c2a39e4edf1f01142267a1afb2..519c5dad57f30260a51072edef48379ef1ca028a 100644 GIT binary patch delta 6353 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 delta 3541 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 diff --git a/package-lock.json b/package-lock.json index 19d5b1269..40207fccd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -154,6 +154,7 @@ "@types/session-file-store": "1.2.5", "@types/source-map-support": "0.5.10", "@types/stream-throttle": "0.1.4", + "@types/supertest": "6.0.2", "@types/swagger-ui-express": "4.1.8", "@types/tmp": "0.2.6", "@types/turndown": "5.0.5", @@ -177,6 +178,7 @@ "rimraf": "6.0.1", "sass": "1.85.1", "sass-loader": "16.0.5", + "supertest": "7.0.0", "swagger-jsdoc": "6.2.8", "tslib": "2.8.1", "tsx": "4.19.3", @@ -4089,6 +4091,13 @@ "@types/express": "*" } }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/d3": { "version": "7.4.3", "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", @@ -4597,6 +4606,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/methods": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -4797,6 +4813,30 @@ "@types/node": "*" } }, + "node_modules/@types/superagent": { + "version": "8.1.9", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz", + "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/supertest": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.2.tgz", + "integrity": "sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/methods": "^1.1.4", + "@types/superagent": "^8.1.0" + } + }, "node_modules/@types/swagger-ui-express": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.8.tgz", @@ -5631,6 +5671,13 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, "node_modules/asar": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", @@ -7017,6 +7064,16 @@ "node": ">=0.10.0" } }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/compress-commons": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", @@ -7184,6 +7241,13 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "license": "MIT" }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true, + "license": "MIT" + }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -8320,6 +8384,17 @@ "integrity": "sha512-g8GWBkJLiIDRJfRXEdrd1wMXpNyGId2DkbfuwFahSb4OCvn717hyRJtAcEDISfp3zkwEhZ4Y4woHPA6DeyB3Fw==", "license": "MIT" }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "node_modules/dir-compare": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", @@ -10043,6 +10118,13 @@ "node": ">= 6" } }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-uri": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", @@ -10408,6 +10490,21 @@ "node": ">= 6" } }, + "node_modules/formidable": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.2.tgz", + "integrity": "sha512-Jqc1btCy3QzRbJaICGwKcBfGWuLADRerLzDqi2NwSt/UkXLsHJw2TVResiaoBufHVHy9aSgClOHCeJsSsFLTbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^2.0.0", + "once": "^1.4.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -10970,6 +11067,16 @@ "node": ">=18.0.0" } }, + "node_modules/hexoid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-2.0.0.tgz", + "integrity": "sha512-qlspKUK7IlSQv2o+5I7yhUd7TxlOG2Vr5LTa3ve2XSNVKAL/n/u/7KLvKmFNimomDIKvZFXWHv0T12mv7rT8Aw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", @@ -16888,6 +16995,54 @@ "node": ">= 8.0" } }, + "node_modules/superagent": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", + "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^3.5.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz", + "integrity": "sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "methods": "^1.1.2", + "superagent": "^9.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", diff --git a/package.json b/package.json index a3c1e8c22..f5263fe3c 100644 --- a/package.json +++ b/package.json @@ -45,10 +45,10 @@ "build:webpack": "tsx node_modules/webpack/bin/webpack.js -c webpack.config.ts", "build:prepare-dist": "npm run build:webpack && rimraf ./dist && tsc && tsx ./bin/copy-dist.ts", "test": "npm run client:test && npm run server:test", - "server:test": "cross-env TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest", - "server:coverage": "cross-env TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --coverage", - "client:test": "cross-env TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app", - "client:coverage": "cross-env TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app --coverage", + "server:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest", + "server:coverage": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --coverage", + "client:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app", + "client:coverage": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app --coverage", "test:playwright": "playwright test", "test:integration-edit-db": "cross-env TRILIUM_INTEGRATION_TEST=edit TRILIUM_PORT=8081 TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db nodemon src/main.ts", "test:integration-mem-db": "cross-env TRILIUM_INTEGRATION_TEST=memory TRILIUM_PORT=8082 TRILIUM_DATA_DIR=./integration-tests/db nodemon src/main.ts", @@ -204,6 +204,7 @@ "@types/session-file-store": "1.2.5", "@types/source-map-support": "0.5.10", "@types/stream-throttle": "0.1.4", + "@types/supertest": "6.0.2", "@types/swagger-ui-express": "4.1.8", "@types/tmp": "0.2.6", "@types/turndown": "5.0.5", @@ -227,6 +228,7 @@ "rimraf": "6.0.1", "sass": "1.85.1", "sass-loader": "16.0.5", + "supertest": "7.0.0", "swagger-jsdoc": "6.2.8", "tslib": "2.8.1", "tsx": "4.19.3", diff --git a/src/share/routes.spec.ts b/src/share/routes.spec.ts new file mode 100644 index 000000000..f4cc3fc98 --- /dev/null +++ b/src/share/routes.spec.ts @@ -0,0 +1,20 @@ +import { beforeAll, describe, it } from "vitest"; +import supertest from "supertest"; +import type { App } from "supertest/types.js"; +import { initializeTranslations } from "../services/i18n.js"; + +let app: App; + +describe("Share API test", () => { + beforeAll(async () => { + initializeTranslations(); + app = (await import("../app.js")).default; + }); + + it("requests password for password-protected share", async () => { + await supertest(app) + .get("/share/YjlPRj2E9fOV") + .expect("WWW-Authenticate", 'Basic realm="User Visible Realm", charset="UTF-8"'); + }); + +});