diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index ee9272b1d..93982dbdb 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -20,7 +20,7 @@ "classnames": "~2.2.6", "d3": "^7.6.1", "d3-graphviz": "^5.0.2", - "fs-extra": "^10.0.1", + "fs-extra": "^11.1.1", "glob-promise": "^6.0.2", "immutable": "^4.0.0", "js-yaml": "^4.1.0", @@ -71,7 +71,7 @@ "@types/d3": "^7.4.0", "@types/d3-graphviz": "^2.6.6", "@types/del": "^4.0.0", - "@types/fs-extra": "^9.0.6", + "@types/fs-extra": "^11.0.1", "@types/glob": "^7.1.1", "@types/google-protobuf": "^3.2.7", "@types/gulp": "^4.0.9", @@ -13128,11 +13128,12 @@ "dev": true }, "node_modules/@types/fs-extra": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.6.tgz", - "integrity": "sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.1.tgz", + "integrity": "sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==", "dev": true, "dependencies": { + "@types/jsonfile": "*", "@types/node": "*" } }, @@ -13362,6 +13363,15 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/jsonfile": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", + "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/jszip": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.1.7.tgz", @@ -23733,16 +23743,16 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs-minipass": { @@ -50974,11 +50984,12 @@ "dev": true }, "@types/fs-extra": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.6.tgz", - "integrity": "sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.1.tgz", + "integrity": "sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==", "dev": true, "requires": { + "@types/jsonfile": "*", "@types/node": "*" } }, @@ -51193,6 +51204,15 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "@types/jsonfile": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", + "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/jszip": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.1.7.tgz", @@ -59186,9 +59206,9 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 75406c0d0..15070d52f 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -1441,7 +1441,7 @@ "classnames": "~2.2.6", "d3": "^7.6.1", "d3-graphviz": "^5.0.2", - "fs-extra": "^10.0.1", + "fs-extra": "^11.1.1", "glob-promise": "^6.0.2", "immutable": "^4.0.0", "js-yaml": "^4.1.0", @@ -1492,7 +1492,7 @@ "@types/d3": "^7.4.0", "@types/d3-graphviz": "^2.6.6", "@types/del": "^4.0.0", - "@types/fs-extra": "^9.0.6", + "@types/fs-extra": "^11.0.1", "@types/glob": "^7.1.1", "@types/google-protobuf": "^3.2.7", "@types/gulp": "^4.0.9", diff --git a/extensions/ql-vscode/src/mocks/recorder.ts b/extensions/ql-vscode/src/mocks/recorder.ts index 9647fdfab..feb6ff32b 100644 --- a/extensions/ql-vscode/src/mocks/recorder.ts +++ b/extensions/ql-vscode/src/mocks/recorder.ts @@ -88,13 +88,18 @@ export class Recorder extends DisposableObject { const bodyFileName = `${i}-${writtenRequest.request.kind}.body.${extension}`; const bodyFilePath = join(scenarioDirectory, bodyFileName); - await writeFile(bodyFilePath, writtenRequest.response.body); + + let bodyFileLink = undefined; + if (writtenRequest.response.body) { + await writeFile(bodyFilePath, writtenRequest.response.body || ""); + bodyFileLink = `file:${bodyFileName}`; + } writtenRequest = { ...writtenRequest, response: { ...writtenRequest.response, - body: `file:${bodyFileName}`, + body: bodyFileLink, }, }; } diff --git a/extensions/ql-vscode/test/vscode-tests/no-workspace/test-adapter.test.ts b/extensions/ql-vscode/test/vscode-tests/no-workspace/test-adapter.test.ts index 129efca7a..ccc528155 100644 --- a/extensions/ql-vscode/test/vscode-tests/no-workspace/test-adapter.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/no-workspace/test-adapter.test.ts @@ -1,4 +1,3 @@ -import * as fs from "fs-extra"; import { Uri, WorkspaceFolder } from "vscode"; import { QLTestAdapter } from "../../../src/test-adapter"; @@ -19,8 +18,6 @@ jest.mock("fs-extra", () => { }; }); -const mockedFsExtra = jest.mocked(fs); - describe("test-adapter", () => { let adapter: QLTestAdapter; let fakeDatabaseManager: DatabaseManager; @@ -131,8 +128,6 @@ describe("test-adapter", () => { }); it("should reregister testproj databases around test run", async () => { - mockedFsExtra.access.mockResolvedValue(undefined); - currentDatabaseItem = preTestDatabaseItem; databaseItems = [preTestDatabaseItem]; await adapter.run(["/path/to/test/dir"]);