diff --git a/extensions/ql-vscode/CHANGELOG.md b/extensions/ql-vscode/CHANGELOG.md index 7d123c75ec9..c2be6162fce 100644 --- a/extensions/ql-vscode/CHANGELOG.md +++ b/extensions/ql-vscode/CHANGELOG.md @@ -2,6 +2,8 @@ ## [UNRELEASED] +- Fix bug where the "CodeQL: Set Current Database" command didn't always select the database. [#2384](https://github.com/github/vscode-codeql/pull/2384) + ## 1.8.3 - 26 April 2023 - Added ability to filter repositories for a variant analysis to only those that have results [#2343](https://github.com/github/vscode-codeql/pull/2343) diff --git a/extensions/ql-vscode/src/databases/local-databases.ts b/extensions/ql-vscode/src/databases/local-databases.ts index 7df731330e2..6f675a759ec 100644 --- a/extensions/ql-vscode/src/databases/local-databases.ts +++ b/extensions/ql-vscode/src/databases/local-databases.ts @@ -621,7 +621,7 @@ export class DatabaseManager extends DisposableObject { progress: ProgressCallback, token: vscode.CancellationToken, uri: vscode.Uri, - makeSelected = false, + makeSelected = true, displayName?: string, isTutorialDatabase?: boolean, ): Promise { @@ -645,12 +645,15 @@ export class DatabaseManager extends DisposableObject { public async addExistingDatabaseItem( databaseItem: DatabaseItem, progress: ProgressCallback, - makeSelected = true, + makeSelected: boolean, token: vscode.CancellationToken, isTutorialDatabase?: boolean, ): Promise { const existingItem = this.findDatabaseItem(databaseItem.databaseUri); if (existingItem !== undefined) { + if (makeSelected) { + await this.setCurrentDatabaseItem(existingItem); + } return existingItem; } diff --git a/extensions/ql-vscode/src/test-runner.ts b/extensions/ql-vscode/src/test-runner.ts index 83b8db4130a..bf6a6a86540 100644 --- a/extensions/ql-vscode/src/test-runner.ts +++ b/extensions/ql-vscode/src/test-runner.ts @@ -112,6 +112,7 @@ export class TestRunner extends DisposableObject { }, token, uri, + false, ); await this.databaseManager.renameDatabaseItem( reopenedDatabase, diff --git a/extensions/ql-vscode/test/vscode-tests/minimal-workspace/local-databases.test.ts b/extensions/ql-vscode/test/vscode-tests/minimal-workspace/local-databases.test.ts index aff29309744..8398f65019f 100644 --- a/extensions/ql-vscode/test/vscode-tests/minimal-workspace/local-databases.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/minimal-workspace/local-databases.test.ts @@ -749,17 +749,14 @@ describe("local databases", () => { mockDbItem.databaseUri, ); - expect(resolveDatabaseContentsSpy).toBeCalledTimes(1); + expect(resolveDatabaseContentsSpy).toBeCalledTimes(2); }); it("should set the database as the currently selected one", async () => { - const makeSelected = true; - await databaseManager.openDatabase( {} as ProgressCallback, {} as CancellationToken, mockDbItem.databaseUri, - makeSelected, ); expect(setCurrentDatabaseItemSpy).toBeCalledTimes(1); diff --git a/extensions/ql-vscode/test/vscode-tests/no-workspace/test-runner.test.ts b/extensions/ql-vscode/test/vscode-tests/no-workspace/test-runner.test.ts index f9261a9ff7d..66e466be45f 100644 --- a/extensions/ql-vscode/test/vscode-tests/no-workspace/test-runner.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/no-workspace/test-runner.test.ts @@ -172,6 +172,7 @@ describe("test-runner", () => { expect.anything(), expect.anything(), preTestDatabaseItem.databaseUri, + false, ); expect(renameDatabaseItemSpy).toBeCalledTimes(1);