Pass VariantAnalysisConfig into DbManager to avoid vscode dependency
This commit is contained in:
@@ -16,18 +16,17 @@ import {
|
||||
} from "./db-item-selection";
|
||||
import { createRemoteTree } from "./db-tree-creator";
|
||||
import type { DbConfigValidationError } from "./db-validation-errors";
|
||||
import { VariantAnalysisConfigListener } from "../config";
|
||||
import type { VariantAnalysisConfig } from "../config";
|
||||
|
||||
export class DbManager extends DisposableObject {
|
||||
public readonly onDbItemsChanged: AppEvent<void>;
|
||||
public static readonly DB_EXPANDED_STATE_KEY = "db_expanded";
|
||||
private readonly onDbItemsChangesEventEmitter: AppEventEmitter<void>;
|
||||
private readonly variantAnalysisConfigListener =
|
||||
new VariantAnalysisConfigListener();
|
||||
|
||||
constructor(
|
||||
private readonly app: App,
|
||||
private readonly dbConfigStore: DbConfigStore,
|
||||
private readonly variantAnalysisConfigListener: VariantAnalysisConfig,
|
||||
) {
|
||||
super();
|
||||
|
||||
@@ -40,7 +39,7 @@ export class DbManager extends DisposableObject {
|
||||
this.onDbItemsChangesEventEmitter.fire();
|
||||
});
|
||||
|
||||
this.variantAnalysisConfigListener.onDidChangeConfiguration(() => {
|
||||
this.variantAnalysisConfigListener.onDidChangeConfiguration?.(() => {
|
||||
this.onDbItemsChangesEventEmitter.fire();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import { DbManager } from "./db-manager";
|
||||
import { DbPanel } from "./ui/db-panel";
|
||||
import { DbSelectionDecorationProvider } from "./ui/db-selection-decoration-provider";
|
||||
import type { DatabasePanelCommands } from "../common/commands";
|
||||
import { VariantAnalysisConfigListener } from "../config";
|
||||
|
||||
export class DbModule extends DisposableObject {
|
||||
public readonly dbManager: DbManager;
|
||||
@@ -17,7 +18,13 @@ export class DbModule extends DisposableObject {
|
||||
super();
|
||||
|
||||
this.dbConfigStore = new DbConfigStore(app);
|
||||
this.dbManager = this.push(new DbManager(app, this.dbConfigStore));
|
||||
this.dbManager = this.push(
|
||||
new DbManager(
|
||||
app,
|
||||
this.dbConfigStore,
|
||||
new VariantAnalysisConfigListener(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
public static async initialize(app: App): Promise<DbModule> {
|
||||
|
||||
9
extensions/ql-vscode/test/factories/config.ts
Normal file
9
extensions/ql-vscode/test/factories/config.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { VariantAnalysisConfig } from "../../src/config";
|
||||
|
||||
export function createMockVariantAnalysisConfig(): VariantAnalysisConfig {
|
||||
return {
|
||||
controllerRepo: "foo/bar",
|
||||
showSystemDefinedRepositoryLists: true,
|
||||
onDidChangeConfiguration: jest.fn(),
|
||||
};
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import { DbManager } from "../../../src/databases/db-manager";
|
||||
import { createDbConfig } from "../../factories/db-config-factories";
|
||||
import { createRemoteUserDefinedListDbItem } from "../../factories/db-item-factories";
|
||||
import { createMockApp } from "../../__mocks__/appMock";
|
||||
import { createMockVariantAnalysisConfig } from "../../factories/config";
|
||||
|
||||
// Note: Although these are "unit tests" (i.e. not integrating with VS Code), they do
|
||||
// test the interaction/"integration" between the DbManager and the DbConfigStore.
|
||||
@@ -46,7 +47,11 @@ describe("db manager", () => {
|
||||
// We don't need to watch changes to the config file in these tests, so we
|
||||
// pass `false` to the dbConfigStore constructor.
|
||||
dbConfigStore = new DbConfigStore(app, false);
|
||||
dbManager = new DbManager(app, dbConfigStore);
|
||||
dbManager = new DbManager(
|
||||
app,
|
||||
dbConfigStore,
|
||||
createMockVariantAnalysisConfig(),
|
||||
);
|
||||
await ensureDir(tempWorkspaceStoragePath);
|
||||
|
||||
dbConfigFilePath = join(
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { VariantAnalysisConfig } from "../../../src/config";
|
||||
import type { DbConfig } from "../../../src/databases/config/db-config";
|
||||
import { SelectedDbItemKind } from "../../../src/databases/config/db-config";
|
||||
import {
|
||||
@@ -11,12 +10,10 @@ import type { ExpandedDbItem } from "../../../src/databases/db-item-expansion";
|
||||
import { ExpandedDbItemKind } from "../../../src/databases/db-item-expansion";
|
||||
import { createRemoteTree } from "../../../src/databases/db-tree-creator";
|
||||
import { createDbConfig } from "../../factories/db-config-factories";
|
||||
import { createMockVariantAnalysisConfig } from "../../factories/config";
|
||||
|
||||
describe("db tree creator", () => {
|
||||
const defaultVariantAnalysisConfig: VariantAnalysisConfig = {
|
||||
controllerRepo: "foo/bar",
|
||||
showSystemDefinedRepositoryLists: true,
|
||||
};
|
||||
const defaultVariantAnalysisConfig = createMockVariantAnalysisConfig();
|
||||
|
||||
describe("createRemoteTree", () => {
|
||||
it("should build root node and system defined lists", () => {
|
||||
|
||||
@@ -49,6 +49,7 @@ import {
|
||||
writeRepoStates,
|
||||
} from "../../../../src/variant-analysis/repo-states-store";
|
||||
import { permissiveFilterSortState } from "../../../unit-tests/variant-analysis-filter-sort.test";
|
||||
import { createMockVariantAnalysisConfig } from "../../../factories/config";
|
||||
|
||||
// up to 3 minutes per test
|
||||
jest.setTimeout(3 * 60 * 1000);
|
||||
@@ -72,7 +73,11 @@ describe("Variant Analysis Manager", () => {
|
||||
const extension = await getActivatedExtension();
|
||||
const cli = mockedObject<CodeQLCliServer>({});
|
||||
app = new ExtensionApp(extension.ctx);
|
||||
const dbManager = new DbManager(app, new DbConfigStore(app));
|
||||
const dbManager = new DbManager(
|
||||
app,
|
||||
new DbConfigStore(app),
|
||||
createMockVariantAnalysisConfig(),
|
||||
);
|
||||
variantAnalysisResultsManager = new VariantAnalysisResultsManager(
|
||||
cli,
|
||||
extLogger,
|
||||
|
||||
@@ -36,6 +36,7 @@ import type { QlPackLockFile } from "../../../../src/packaging/qlpack-lock-file"
|
||||
//import { expect } from "@jest/globals";
|
||||
import "../../../matchers/toExistInCodeQLPack";
|
||||
import type { QlPackDetails } from "../../../../src/variant-analysis/ql-pack-details";
|
||||
import { createMockVariantAnalysisConfig } from "../../../factories/config";
|
||||
|
||||
describe("Variant Analysis Manager", () => {
|
||||
let cli: CodeQLCliServer;
|
||||
@@ -50,7 +51,11 @@ describe("Variant Analysis Manager", () => {
|
||||
const extension = await getActivatedExtension();
|
||||
cli = extension.cliServer;
|
||||
const app = new ExtensionApp(extension.ctx);
|
||||
const dbManager = new DbManager(app, new DbConfigStore(app));
|
||||
const dbManager = new DbManager(
|
||||
app,
|
||||
new DbConfigStore(app),
|
||||
createMockVariantAnalysisConfig(),
|
||||
);
|
||||
const variantAnalysisResultsManager = new VariantAnalysisResultsManager(
|
||||
cli,
|
||||
extLogger,
|
||||
|
||||
@@ -11,6 +11,7 @@ import { ExtensionApp } from "../../../../src/common/vscode/extension-app";
|
||||
import { createMockExtensionContext } from "../../../factories/extension-context";
|
||||
import { createDbConfig } from "../../../factories/db-config-factories";
|
||||
import { setRemoteControllerRepo } from "../../../../src/config";
|
||||
import { createMockVariantAnalysisConfig } from "../../../factories/config";
|
||||
|
||||
describe("db panel rendering nodes", () => {
|
||||
const workspaceStoragePath = join(__dirname, "test-workspace-storage");
|
||||
@@ -35,7 +36,11 @@ describe("db panel rendering nodes", () => {
|
||||
const app = new ExtensionApp(extensionContext);
|
||||
|
||||
dbConfigStore = new DbConfigStore(app, false);
|
||||
dbManager = new DbManager(app, dbConfigStore);
|
||||
dbManager = new DbManager(
|
||||
app,
|
||||
dbConfigStore,
|
||||
createMockVariantAnalysisConfig(),
|
||||
);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
||||
@@ -10,6 +10,7 @@ import { ExtensionApp } from "../../../../src/common/vscode/extension-app";
|
||||
import { createMockExtensionContext } from "../../../factories/extension-context";
|
||||
import { createDbConfig } from "../../../factories/db-config-factories";
|
||||
import { setRemoteControllerRepo } from "../../../../src/config";
|
||||
import { createMockVariantAnalysisConfig } from "../../../factories/config";
|
||||
|
||||
describe("db panel", () => {
|
||||
const workspaceStoragePath = join(__dirname, "test-workspace-storage");
|
||||
@@ -34,7 +35,11 @@ describe("db panel", () => {
|
||||
const app = new ExtensionApp(extensionContext);
|
||||
|
||||
dbConfigStore = new DbConfigStore(app, false);
|
||||
dbManager = new DbManager(app, dbConfigStore);
|
||||
dbManager = new DbManager(
|
||||
app,
|
||||
dbConfigStore,
|
||||
createMockVariantAnalysisConfig(),
|
||||
);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
||||
@@ -12,6 +12,7 @@ import { ExtensionApp } from "../../../../src/common/vscode/extension-app";
|
||||
import { createMockExtensionContext } from "../../../factories/extension-context";
|
||||
import { createDbConfig } from "../../../factories/db-config-factories";
|
||||
import { setRemoteControllerRepo } from "../../../../src/config";
|
||||
import { createMockVariantAnalysisConfig } from "../../../factories/config";
|
||||
|
||||
describe("db panel selection", () => {
|
||||
const workspaceStoragePath = join(__dirname, "test-workspace-storage");
|
||||
@@ -36,7 +37,11 @@ describe("db panel selection", () => {
|
||||
const app = new ExtensionApp(extensionContext);
|
||||
|
||||
dbConfigStore = new DbConfigStore(app, false);
|
||||
dbManager = new DbManager(app, dbConfigStore);
|
||||
dbManager = new DbManager(
|
||||
app,
|
||||
dbConfigStore,
|
||||
createMockVariantAnalysisConfig(),
|
||||
);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
||||
Reference in New Issue
Block a user