Skip to content

Commit 58de486

Browse files
Pass VariantAnalysisConfig into DbManager to avoid vscode dependency
1 parent 17ff592 commit 58de486

File tree

10 files changed

+58
-16
lines changed

10 files changed

+58
-16
lines changed

extensions/ql-vscode/src/databases/db-manager.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,17 @@ import {
1616
} from "./db-item-selection";
1717
import { createRemoteTree } from "./db-tree-creator";
1818
import type { DbConfigValidationError } from "./db-validation-errors";
19-
import { VariantAnalysisConfigListener } from "../config";
19+
import type { VariantAnalysisConfig } from "../config";
2020

2121
export class DbManager extends DisposableObject {
2222
public readonly onDbItemsChanged: AppEvent<void>;
2323
public static readonly DB_EXPANDED_STATE_KEY = "db_expanded";
2424
private readonly onDbItemsChangesEventEmitter: AppEventEmitter<void>;
25-
private readonly variantAnalysisConfigListener =
26-
new VariantAnalysisConfigListener();
2725

2826
constructor(
2927
private readonly app: App,
3028
private readonly dbConfigStore: DbConfigStore,
29+
private readonly variantAnalysisConfigListener: VariantAnalysisConfig,
3130
) {
3231
super();
3332

@@ -40,7 +39,7 @@ export class DbManager extends DisposableObject {
4039
this.onDbItemsChangesEventEmitter.fire();
4140
});
4241

43-
this.variantAnalysisConfigListener.onDidChangeConfiguration(() => {
42+
this.variantAnalysisConfigListener.onDidChangeConfiguration?.(() => {
4443
this.onDbItemsChangesEventEmitter.fire();
4544
});
4645
}

extensions/ql-vscode/src/databases/db-module.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { DbManager } from "./db-manager";
77
import { DbPanel } from "./ui/db-panel";
88
import { DbSelectionDecorationProvider } from "./ui/db-selection-decoration-provider";
99
import type { DatabasePanelCommands } from "../common/commands";
10+
import { VariantAnalysisConfigListener } from "../config";
1011

1112
export class DbModule extends DisposableObject {
1213
public readonly dbManager: DbManager;
@@ -17,7 +18,13 @@ export class DbModule extends DisposableObject {
1718
super();
1819

1920
this.dbConfigStore = new DbConfigStore(app);
20-
this.dbManager = this.push(new DbManager(app, this.dbConfigStore));
21+
this.dbManager = this.push(
22+
new DbManager(
23+
app,
24+
this.dbConfigStore,
25+
new VariantAnalysisConfigListener(),
26+
),
27+
);
2128
}
2229

2330
public static async initialize(app: App): Promise<DbModule> {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import type { VariantAnalysisConfig } from "../../src/config";
2+
3+
export function createMockVariantAnalysisConfig(): VariantAnalysisConfig {
4+
return {
5+
controllerRepo: "foo/bar",
6+
showSystemDefinedRepositoryLists: true,
7+
onDidChangeConfiguration: jest.fn(),
8+
};
9+
}

extensions/ql-vscode/test/unit-tests/databases/db-manager.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { DbManager } from "../../../src/databases/db-manager";
2424
import { createDbConfig } from "../../factories/db-config-factories";
2525
import { createRemoteUserDefinedListDbItem } from "../../factories/db-item-factories";
2626
import { createMockApp } from "../../__mocks__/appMock";
27+
import { createMockVariantAnalysisConfig } from "../../factories/config";
2728

2829
// Note: Although these are "unit tests" (i.e. not integrating with VS Code), they do
2930
// test the interaction/"integration" between the DbManager and the DbConfigStore.
@@ -46,7 +47,11 @@ describe("db manager", () => {
4647
// We don't need to watch changes to the config file in these tests, so we
4748
// pass `false` to the dbConfigStore constructor.
4849
dbConfigStore = new DbConfigStore(app, false);
49-
dbManager = new DbManager(app, dbConfigStore);
50+
dbManager = new DbManager(
51+
app,
52+
dbConfigStore,
53+
createMockVariantAnalysisConfig(),
54+
);
5055
await ensureDir(tempWorkspaceStoragePath);
5156

5257
dbConfigFilePath = join(

extensions/ql-vscode/test/unit-tests/databases/db-tree-creator.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { VariantAnalysisConfig } from "../../../src/config";
21
import type { DbConfig } from "../../../src/databases/config/db-config";
32
import { SelectedDbItemKind } from "../../../src/databases/config/db-config";
43
import {
@@ -11,12 +10,10 @@ import type { ExpandedDbItem } from "../../../src/databases/db-item-expansion";
1110
import { ExpandedDbItemKind } from "../../../src/databases/db-item-expansion";
1211
import { createRemoteTree } from "../../../src/databases/db-tree-creator";
1312
import { createDbConfig } from "../../factories/db-config-factories";
13+
import { createMockVariantAnalysisConfig } from "../../factories/config";
1414

1515
describe("db tree creator", () => {
16-
const defaultVariantAnalysisConfig: VariantAnalysisConfig = {
17-
controllerRepo: "foo/bar",
18-
showSystemDefinedRepositoryLists: true,
19-
};
16+
const defaultVariantAnalysisConfig = createMockVariantAnalysisConfig();
2017

2118
describe("createRemoteTree", () => {
2219
it("should build root node and system defined lists", () => {

extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-manager.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import {
4949
writeRepoStates,
5050
} from "../../../../src/variant-analysis/repo-states-store";
5151
import { permissiveFilterSortState } from "../../../unit-tests/variant-analysis-filter-sort.test";
52+
import { createMockVariantAnalysisConfig } from "../../../factories/config";
5253

5354
// up to 3 minutes per test
5455
jest.setTimeout(3 * 60 * 1000);
@@ -72,7 +73,11 @@ describe("Variant Analysis Manager", () => {
7273
const extension = await getActivatedExtension();
7374
const cli = mockedObject<CodeQLCliServer>({});
7475
app = new ExtensionApp(extension.ctx);
75-
const dbManager = new DbManager(app, new DbConfigStore(app));
76+
const dbManager = new DbManager(
77+
app,
78+
new DbConfigStore(app),
79+
createMockVariantAnalysisConfig(),
80+
);
7681
variantAnalysisResultsManager = new VariantAnalysisResultsManager(
7782
cli,
7883
extLogger,

extensions/ql-vscode/test/vscode-tests/cli-integration/variant-analysis/variant-analysis-manager.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import type { QlPackLockFile } from "../../../../src/packaging/qlpack-lock-file"
3636
//import { expect } from "@jest/globals";
3737
import "../../../matchers/toExistInCodeQLPack";
3838
import type { QlPackDetails } from "../../../../src/variant-analysis/ql-pack-details";
39+
import { createMockVariantAnalysisConfig } from "../../../factories/config";
3940

4041
describe("Variant Analysis Manager", () => {
4142
let cli: CodeQLCliServer;
@@ -50,7 +51,11 @@ describe("Variant Analysis Manager", () => {
5051
const extension = await getActivatedExtension();
5152
cli = extension.cliServer;
5253
const app = new ExtensionApp(extension.ctx);
53-
const dbManager = new DbManager(app, new DbConfigStore(app));
54+
const dbManager = new DbManager(
55+
app,
56+
new DbConfigStore(app),
57+
createMockVariantAnalysisConfig(),
58+
);
5459
const variantAnalysisResultsManager = new VariantAnalysisResultsManager(
5560
cli,
5661
extLogger,

extensions/ql-vscode/test/vscode-tests/minimal-workspace/databases/db-panel-rendering.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { ExtensionApp } from "../../../../src/common/vscode/extension-app";
1111
import { createMockExtensionContext } from "../../../factories/extension-context";
1212
import { createDbConfig } from "../../../factories/db-config-factories";
1313
import { setRemoteControllerRepo } from "../../../../src/config";
14+
import { createMockVariantAnalysisConfig } from "../../../factories/config";
1415

1516
describe("db panel rendering nodes", () => {
1617
const workspaceStoragePath = join(__dirname, "test-workspace-storage");
@@ -35,7 +36,11 @@ describe("db panel rendering nodes", () => {
3536
const app = new ExtensionApp(extensionContext);
3637

3738
dbConfigStore = new DbConfigStore(app, false);
38-
dbManager = new DbManager(app, dbConfigStore);
39+
dbManager = new DbManager(
40+
app,
41+
dbConfigStore,
42+
createMockVariantAnalysisConfig(),
43+
);
3944
});
4045

4146
beforeEach(async () => {

extensions/ql-vscode/test/vscode-tests/minimal-workspace/databases/db-panel.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { ExtensionApp } from "../../../../src/common/vscode/extension-app";
1010
import { createMockExtensionContext } from "../../../factories/extension-context";
1111
import { createDbConfig } from "../../../factories/db-config-factories";
1212
import { setRemoteControllerRepo } from "../../../../src/config";
13+
import { createMockVariantAnalysisConfig } from "../../../factories/config";
1314

1415
describe("db panel", () => {
1516
const workspaceStoragePath = join(__dirname, "test-workspace-storage");
@@ -34,7 +35,11 @@ describe("db panel", () => {
3435
const app = new ExtensionApp(extensionContext);
3536

3637
dbConfigStore = new DbConfigStore(app, false);
37-
dbManager = new DbManager(app, dbConfigStore);
38+
dbManager = new DbManager(
39+
app,
40+
dbConfigStore,
41+
createMockVariantAnalysisConfig(),
42+
);
3843
});
3944

4045
beforeEach(async () => {

extensions/ql-vscode/test/vscode-tests/no-workspace/databases/db-panel-selection.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { ExtensionApp } from "../../../../src/common/vscode/extension-app";
1212
import { createMockExtensionContext } from "../../../factories/extension-context";
1313
import { createDbConfig } from "../../../factories/db-config-factories";
1414
import { setRemoteControllerRepo } from "../../../../src/config";
15+
import { createMockVariantAnalysisConfig } from "../../../factories/config";
1516

1617
describe("db panel selection", () => {
1718
const workspaceStoragePath = join(__dirname, "test-workspace-storage");
@@ -36,7 +37,11 @@ describe("db panel selection", () => {
3637
const app = new ExtensionApp(extensionContext);
3738

3839
dbConfigStore = new DbConfigStore(app, false);
39-
dbManager = new DbManager(app, dbConfigStore);
40+
dbManager = new DbManager(
41+
app,
42+
dbConfigStore,
43+
createMockVariantAnalysisConfig(),
44+
);
4045
});
4146

4247
beforeEach(async () => {

0 commit comments

Comments
 (0)