From c834b2d8226aff9e5bfd912af29d19579386b5ca Mon Sep 17 00:00:00 2001 From: syeda Date: Mon, 26 Oct 2026 23:04:51 +0500 Subject: [PATCH] test: cover open referenced file command --- .../language-support/query-editor.test.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 extensions/ql-vscode/test/vscode-tests/no-workspace/language-support/query-editor.test.ts diff --git a/extensions/ql-vscode/test/vscode-tests/no-workspace/language-support/query-editor.test.ts b/extensions/ql-vscode/test/vscode-tests/no-workspace/language-support/query-editor.test.ts new file mode 100644 index 00000000000..655fbcf3973 --- /dev/null +++ b/extensions/ql-vscode/test/vscode-tests/no-workspace/language-support/query-editor.test.ts @@ -0,0 +1,46 @@ +import type { TextEditor } from "vscode"; +import { Uri, window } from "vscode"; + +import type { CodeQLCliServer } from "../../../../src/codeql-cli/cli"; +import { getQueryEditorCommands } from "../../../../src/language-support"; +import type { QueryRunner } from "../../../../src/query-server"; +import { createMockCommandManager } from "../../../__mocks__/commandsMock"; +import { mockedObject } from "../../utils/mocking.helpers"; + +describe("open referenced file command", () => { + let showTextDocumentSpy: jest.SpiedFunction; + + beforeEach(() => { + showTextDocumentSpy = jest + .spyOn(window, "showTextDocument") + .mockResolvedValue(mockedObject({})); + }); + + afterEach(() => { + jest.restoreAllMocks(); + }); + + it("resolves a qlref and opens the referenced query", async () => { + const selectedQuery = Uri.file("/tmp/reference.qlref"); + const resolvedPath = "/tmp/referenced-query.ql"; + const resolveQlref = jest.fn().mockResolvedValue({ resolvedPath }); + const cliServer = mockedObject({ resolveQlref }); + const queryRunner = mockedObject({}); + + const commands = getQueryEditorCommands({ + commandManager: createMockCommandManager(), + queryRunner, + cliServer, + qhelpTmpDir: "/tmp/qhelp", + }); + + await commands["codeQL.openReferencedFile"](selectedQuery); + + expect(resolveQlref).toHaveBeenCalledTimes(1); + expect(resolveQlref).toHaveBeenCalledWith(selectedQuery.fsPath); + expect(showTextDocumentSpy).toHaveBeenCalledTimes(1); + expect(showTextDocumentSpy).toHaveBeenCalledWith(Uri.file(resolvedPath), { + preview: false, + }); + }); +});