diff --git a/extensions/ql-vscode/src/skeleton-query-wizard.ts b/extensions/ql-vscode/src/skeleton-query-wizard.ts index 7449f1f7d..54a265fbe 100644 --- a/extensions/ql-vscode/src/skeleton-query-wizard.ts +++ b/extensions/ql-vscode/src/skeleton-query-wizard.ts @@ -185,7 +185,7 @@ export class SkeletonQueryWizard { const folderUri = Uri.file(join(this.storagePath, folderName)); const files = await workspace.fs.readDirectory(folderUri); const qlFiles = files.filter(([filename, _fileType]) => - filename.endsWith(".ql"), + filename.match(/example[0-9]*.ql/), ); return `example${qlFiles.length + 1}.ql`; diff --git a/extensions/ql-vscode/test/vscode-tests/cli-integration/skeleton-query-wizard.test.ts b/extensions/ql-vscode/test/vscode-tests/cli-integration/skeleton-query-wizard.test.ts index c01c9a3b7..2202a3487 100644 --- a/extensions/ql-vscode/test/vscode-tests/cli-integration/skeleton-query-wizard.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/cli-integration/skeleton-query-wizard.test.ts @@ -9,7 +9,7 @@ import { TextDocument, window, workspace, WorkspaceFolder } from "vscode"; import { extLogger } from "../../../src/common"; import { QlPackGenerator } from "../../../src/qlpack-generator"; import * as helpers from "../../../src/helpers"; -import { ensureDirSync, removeSync } from "fs-extra"; +import { createFileSync, ensureDirSync, removeSync } from "fs-extra"; import { join } from "path"; import { CancellationTokenSource } from "vscode-jsonrpc"; import { testCredentialsWithStub } from "../../factories/authentication"; @@ -158,6 +158,16 @@ describe("SkeletonQueryWizard", () => { expect(createExampleQlFileSpy).toHaveBeenCalledWith("example2.ql"); }); + it("should only take into account example QL files", async () => { + createFileSync( + join(dir.name, `codeql-custom-queries-${chosenLanguage}`, "MyQuery.ql"), + ); + + await wizard.execute(); + + expect(createExampleQlFileSpy).toHaveBeenCalledWith("example2.ql"); + }); + describe("if QL pack has no query file", () => { it("should create new query file in the same QL pack folder", async () => { removeSync(