Remove Record<string, never> type when activating extension
This commit is contained in:
@@ -289,7 +289,7 @@ const MIN_VERSION = "1.67.0";
|
|||||||
*/
|
*/
|
||||||
export async function activate(
|
export async function activate(
|
||||||
ctx: ExtensionContext,
|
ctx: ExtensionContext,
|
||||||
): Promise<CodeQLExtensionInterface | Record<string, never>> {
|
): Promise<CodeQLExtensionInterface | undefined> {
|
||||||
void extLogger.log(`Starting ${extensionId} extension`);
|
void extLogger.log(`Starting ${extensionId} extension`);
|
||||||
if (extension === undefined) {
|
if (extension === undefined) {
|
||||||
throw new Error(`Can't find extension ${extensionId}`);
|
throw new Error(`Can't find extension ${extensionId}`);
|
||||||
@@ -379,9 +379,11 @@ export async function activate(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
variantAnalysisViewSerializer.onExtensionLoaded(
|
if (codeQlExtension !== undefined) {
|
||||||
codeQlExtension.variantAnalysisManager,
|
variantAnalysisViewSerializer.onExtensionLoaded(
|
||||||
);
|
codeQlExtension.variantAnalysisManager,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return codeQlExtension;
|
return codeQlExtension;
|
||||||
}
|
}
|
||||||
@@ -571,7 +573,7 @@ async function installOrUpdateThenTryActivate(
|
|||||||
distributionManager: DistributionManager,
|
distributionManager: DistributionManager,
|
||||||
distributionConfigListener: DistributionConfigListener,
|
distributionConfigListener: DistributionConfigListener,
|
||||||
config: DistributionUpdateConfig,
|
config: DistributionUpdateConfig,
|
||||||
): Promise<CodeQLExtensionInterface | Record<string, never>> {
|
): Promise<CodeQLExtensionInterface | undefined> {
|
||||||
await installOrUpdateDistribution(ctx, app, distributionManager, config);
|
await installOrUpdateDistribution(ctx, app, distributionManager, config);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -585,20 +587,19 @@ async function installOrUpdateThenTryActivate(
|
|||||||
// Display the warnings even if the extension has already activated.
|
// Display the warnings even if the extension has already activated.
|
||||||
const distributionResult =
|
const distributionResult =
|
||||||
await getDistributionDisplayingDistributionWarnings(distributionManager);
|
await getDistributionDisplayingDistributionWarnings(distributionManager);
|
||||||
let extensionInterface: CodeQLExtensionInterface | Record<string, never> = {};
|
|
||||||
if (
|
if (
|
||||||
!beganMainExtensionActivation &&
|
!beganMainExtensionActivation &&
|
||||||
distributionResult.kind !== FindDistributionResultKind.NoDistribution
|
distributionResult.kind !== FindDistributionResultKind.NoDistribution
|
||||||
) {
|
) {
|
||||||
extensionInterface = await activateWithInstalledDistribution(
|
return await activateWithInstalledDistribution(
|
||||||
ctx,
|
ctx,
|
||||||
app,
|
app,
|
||||||
distributionManager,
|
distributionManager,
|
||||||
distributionConfigListener,
|
distributionConfigListener,
|
||||||
);
|
);
|
||||||
} else if (
|
}
|
||||||
distributionResult.kind === FindDistributionResultKind.NoDistribution
|
|
||||||
) {
|
if (distributionResult.kind === FindDistributionResultKind.NoDistribution) {
|
||||||
registerErrorStubs([checkForUpdatesCommand], (command) => async () => {
|
registerErrorStubs([checkForUpdatesCommand], (command) => async () => {
|
||||||
const installActionName = "Install CodeQL CLI";
|
const installActionName = "Install CodeQL CLI";
|
||||||
const chosenAction = await showAndLogErrorMessage(
|
const chosenAction = await showAndLogErrorMessage(
|
||||||
@@ -622,7 +623,7 @@ async function installOrUpdateThenTryActivate(
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return extensionInterface;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PACK_GLOBS = [
|
const PACK_GLOBS = [
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { commands, extensions, window } from "vscode";
|
import { commands, window } from "vscode";
|
||||||
|
|
||||||
import { CodeQLExtensionInterface } from "../../../../src/extension";
|
|
||||||
import { readJson } from "fs-extra";
|
import { readJson } from "fs-extra";
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
import {
|
import {
|
||||||
@@ -15,19 +14,15 @@ import { DbListKind } from "../../../../src/databases/db-item";
|
|||||||
import { createDbTreeViewItemSystemDefinedList } from "../../../../src/databases/ui/db-tree-view-item";
|
import { createDbTreeViewItemSystemDefinedList } from "../../../../src/databases/ui/db-tree-view-item";
|
||||||
import { createRemoteSystemDefinedListDbItem } from "../../../factories/db-item-factories";
|
import { createRemoteSystemDefinedListDbItem } from "../../../factories/db-item-factories";
|
||||||
import { DbConfigStore } from "../../../../src/databases/config/db-config-store";
|
import { DbConfigStore } from "../../../../src/databases/config/db-config-store";
|
||||||
|
import { getActivatedExtension } from "../../global.helper";
|
||||||
|
|
||||||
jest.setTimeout(60_000);
|
jest.setTimeout(60_000);
|
||||||
|
|
||||||
describe("Db panel UI commands", () => {
|
describe("Db panel UI commands", () => {
|
||||||
let extension: CodeQLExtensionInterface | Record<string, never>;
|
|
||||||
let storagePath: string;
|
let storagePath: string;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
|
|
||||||
storagePath =
|
storagePath =
|
||||||
extension.ctx.storageUri?.fsPath || extension.ctx.globalStorageUri.fsPath;
|
extension.ctx.storageUri?.fsPath || extension.ctx.globalStorageUri.fsPath;
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
import {
|
import {
|
||||||
commands,
|
commands,
|
||||||
env,
|
env,
|
||||||
extensions,
|
|
||||||
TextDocument,
|
TextDocument,
|
||||||
TextEditor,
|
TextEditor,
|
||||||
Uri,
|
Uri,
|
||||||
window,
|
window,
|
||||||
workspace,
|
workspace,
|
||||||
} from "vscode";
|
} from "vscode";
|
||||||
import { CodeQLExtensionInterface } from "../../../../src/extension";
|
|
||||||
import { extLogger } from "../../../../src/common";
|
import { extLogger } from "../../../../src/common";
|
||||||
import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client";
|
import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client";
|
||||||
import * as ghActionsApiClient from "../../../../src/variant-analysis/gh-api/gh-actions-api-client";
|
import * as ghActionsApiClient from "../../../../src/variant-analysis/gh-api/gh-actions-api-client";
|
||||||
@@ -20,7 +18,7 @@ import { Response } from "node-fetch";
|
|||||||
|
|
||||||
import { VariantAnalysisManager } from "../../../../src/variant-analysis/variant-analysis-manager";
|
import { VariantAnalysisManager } from "../../../../src/variant-analysis/variant-analysis-manager";
|
||||||
import { CodeQLCliServer } from "../../../../src/cli";
|
import { CodeQLCliServer } from "../../../../src/cli";
|
||||||
import { storagePath } from "../../global.helper";
|
import { getActivatedExtension, storagePath } from "../../global.helper";
|
||||||
import { VariantAnalysisResultsManager } from "../../../../src/variant-analysis/variant-analysis-results-manager";
|
import { VariantAnalysisResultsManager } from "../../../../src/variant-analysis/variant-analysis-results-manager";
|
||||||
import { createMockVariantAnalysis } from "../../../factories/variant-analysis/shared/variant-analysis";
|
import { createMockVariantAnalysis } from "../../../factories/variant-analysis/shared/variant-analysis";
|
||||||
import * as VariantAnalysisModule from "../../../../src/variant-analysis/shared/variant-analysis";
|
import * as VariantAnalysisModule from "../../../../src/variant-analysis/shared/variant-analysis";
|
||||||
@@ -67,11 +65,7 @@ describe("Variant Analysis Manager", () => {
|
|||||||
scannedRepos,
|
scannedRepos,
|
||||||
});
|
});
|
||||||
|
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
const cli = mockedObject<CodeQLCliServer>({});
|
const cli = mockedObject<CodeQLCliServer>({});
|
||||||
app = new ExtensionApp(extension.ctx);
|
app = new ExtensionApp(extension.ctx);
|
||||||
const dbManager = new DbManager(app, new DbConfigStore(app));
|
const dbManager = new DbManager(app, new DbConfigStore(app));
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { commands, extensions } from "vscode";
|
import { commands } from "vscode";
|
||||||
import { CodeQLExtensionInterface } from "../../../../src/extension";
|
|
||||||
|
|
||||||
import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client";
|
import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client";
|
||||||
import { VariantAnalysisMonitor } from "../../../../src/variant-analysis/variant-analysis-monitor";
|
import { VariantAnalysisMonitor } from "../../../../src/variant-analysis/variant-analysis-monitor";
|
||||||
@@ -25,11 +24,11 @@ import {
|
|||||||
import { createMockVariantAnalysis } from "../../../factories/variant-analysis/shared/variant-analysis";
|
import { createMockVariantAnalysis } from "../../../factories/variant-analysis/shared/variant-analysis";
|
||||||
import { VariantAnalysisManager } from "../../../../src/variant-analysis/variant-analysis-manager";
|
import { VariantAnalysisManager } from "../../../../src/variant-analysis/variant-analysis-manager";
|
||||||
import { testCredentialsWithStub } from "../../../factories/authentication";
|
import { testCredentialsWithStub } from "../../../factories/authentication";
|
||||||
|
import { getActivatedExtension } from "../../global.helper";
|
||||||
|
|
||||||
jest.setTimeout(60_000);
|
jest.setTimeout(60_000);
|
||||||
|
|
||||||
describe("Variant Analysis Monitor", () => {
|
describe("Variant Analysis Monitor", () => {
|
||||||
let extension: CodeQLExtensionInterface | Record<string, never>;
|
|
||||||
let mockGetVariantAnalysis: jest.SpiedFunction<
|
let mockGetVariantAnalysis: jest.SpiedFunction<
|
||||||
typeof ghApiClient.getVariantAnalysis
|
typeof ghApiClient.getVariantAnalysis
|
||||||
>;
|
>;
|
||||||
@@ -48,11 +47,7 @@ describe("Variant Analysis Monitor", () => {
|
|||||||
|
|
||||||
shouldCancelMonitor = jest.fn();
|
shouldCancelMonitor = jest.fn();
|
||||||
|
|
||||||
extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
variantAnalysisMonitor = new VariantAnalysisMonitor(shouldCancelMonitor);
|
variantAnalysisMonitor = new VariantAnalysisMonitor(shouldCancelMonitor);
|
||||||
variantAnalysisMonitor.onVariantAnalysisChange(onVariantAnalysisChangeSpy);
|
variantAnalysisMonitor.onVariantAnalysisChange(onVariantAnalysisChangeSpy);
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,19 @@
|
|||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { extensions, CancellationToken, Uri, window } from "vscode";
|
import { CancellationToken, Uri, window } from "vscode";
|
||||||
|
|
||||||
import { CodeQLExtensionInterface } from "../../../src/extension";
|
|
||||||
import { CodeQLCliServer } from "../../../src/cli";
|
import { CodeQLCliServer } from "../../../src/cli";
|
||||||
import { DatabaseManager } from "../../../src/local-databases";
|
import { DatabaseManager } from "../../../src/local-databases";
|
||||||
import {
|
import {
|
||||||
importArchiveDatabase,
|
importArchiveDatabase,
|
||||||
promptImportInternetDatabase,
|
promptImportInternetDatabase,
|
||||||
} from "../../../src/databaseFetcher";
|
} from "../../../src/databaseFetcher";
|
||||||
import { cleanDatabases, dbLoc, DB_URL, storagePath } from "../global.helper";
|
import {
|
||||||
|
cleanDatabases,
|
||||||
|
dbLoc,
|
||||||
|
DB_URL,
|
||||||
|
getActivatedExtension,
|
||||||
|
storagePath,
|
||||||
|
} from "../global.helper";
|
||||||
import { createMockCommandManager } from "../../__mocks__/commandsMock";
|
import { createMockCommandManager } from "../../__mocks__/commandsMock";
|
||||||
|
|
||||||
jest.setTimeout(60_000);
|
jest.setTimeout(60_000);
|
||||||
@@ -30,11 +35,7 @@ describe("DatabaseFetcher", () => {
|
|||||||
jest.spyOn(window, "showErrorMessage").mockResolvedValue(undefined);
|
jest.spyOn(window, "showErrorMessage").mockResolvedValue(undefined);
|
||||||
jest.spyOn(window, "showInformationMessage").mockResolvedValue(undefined);
|
jest.spyOn(window, "showInformationMessage").mockResolvedValue(undefined);
|
||||||
|
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
if ("databaseManager" in extension) {
|
if ("databaseManager" in extension) {
|
||||||
databaseManager = extension.databaseManager;
|
databaseManager = extension.databaseManager;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { extensions } from "vscode";
|
|
||||||
|
|
||||||
import { CodeQLCliServer } from "../../../src/cli";
|
import { CodeQLCliServer } from "../../../src/cli";
|
||||||
import { CodeQLExtensionInterface } from "../../../src/extension";
|
|
||||||
import { tryGetQueryMetadata } from "../../../src/helpers";
|
import { tryGetQueryMetadata } from "../../../src/helpers";
|
||||||
|
import { getActivatedExtension } from "../global.helper";
|
||||||
|
|
||||||
// up to 3 minutes per test
|
// up to 3 minutes per test
|
||||||
jest.setTimeout(3 * 60 * 1000);
|
jest.setTimeout(3 * 60 * 1000);
|
||||||
@@ -14,11 +13,7 @@ describe("helpers (with CLI)", () => {
|
|||||||
let cli: CodeQLCliServer;
|
let cli: CodeQLCliServer;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
if ("cliServer" in extension) {
|
if ("cliServer" in extension) {
|
||||||
cli = extension.cliServer;
|
cli = extension.cliServer;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -7,12 +7,11 @@ import * as messages from "../../../src/pure/legacy-messages";
|
|||||||
import * as qsClient from "../../../src/legacy-query-server/queryserver-client";
|
import * as qsClient from "../../../src/legacy-query-server/queryserver-client";
|
||||||
import * as cli from "../../../src/cli";
|
import * as cli from "../../../src/cli";
|
||||||
import { CellValue } from "../../../src/pure/bqrs-cli-types";
|
import { CellValue } from "../../../src/pure/bqrs-cli-types";
|
||||||
import { extensions } from "vscode";
|
|
||||||
import { CodeQLExtensionInterface } from "../../../src/extension";
|
|
||||||
import { describeWithCodeQL } from "../cli";
|
import { describeWithCodeQL } from "../cli";
|
||||||
import { QueryServerClient } from "../../../src/legacy-query-server/queryserver-client";
|
import { QueryServerClient } from "../../../src/legacy-query-server/queryserver-client";
|
||||||
import { extLogger, ProgressReporter } from "../../../src/common";
|
import { extLogger, ProgressReporter } from "../../../src/common";
|
||||||
import { createMockApp } from "../../__mocks__/appMock";
|
import { createMockApp } from "../../__mocks__/appMock";
|
||||||
|
import { getActivatedExtension } from "../global.helper";
|
||||||
|
|
||||||
const baseDir = join(__dirname, "../../../test/data");
|
const baseDir = join(__dirname, "../../../test/data");
|
||||||
|
|
||||||
@@ -112,11 +111,7 @@ describeWithCodeQL()("using the legacy query server", () => {
|
|||||||
let cliServer: cli.CodeQLCliServer;
|
let cliServer: cli.CodeQLCliServer;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
if ("cliServer" in extension) {
|
if ("cliServer" in extension) {
|
||||||
cliServer = extension.cliServer;
|
cliServer = extension.cliServer;
|
||||||
cliServer.quiet = true;
|
cliServer.quiet = true;
|
||||||
|
|||||||
@@ -5,13 +5,17 @@ import * as messages from "../../../src/pure/new-messages";
|
|||||||
import * as qsClient from "../../../src/query-server/queryserver-client";
|
import * as qsClient from "../../../src/query-server/queryserver-client";
|
||||||
import * as cli from "../../../src/cli";
|
import * as cli from "../../../src/cli";
|
||||||
import { CellValue } from "../../../src/pure/bqrs-cli-types";
|
import { CellValue } from "../../../src/pure/bqrs-cli-types";
|
||||||
import { extensions, Uri } from "vscode";
|
import { Uri } from "vscode";
|
||||||
import { CodeQLExtensionInterface } from "../../../src/extension";
|
|
||||||
import { describeWithCodeQL } from "../cli";
|
import { describeWithCodeQL } from "../cli";
|
||||||
import { QueryServerClient } from "../../../src/query-server/queryserver-client";
|
import { QueryServerClient } from "../../../src/query-server/queryserver-client";
|
||||||
import { extLogger, ProgressReporter } from "../../../src/common";
|
import { extLogger, ProgressReporter } from "../../../src/common";
|
||||||
import { QueryResultType } from "../../../src/pure/new-messages";
|
import { QueryResultType } from "../../../src/pure/new-messages";
|
||||||
import { cleanDatabases, dbLoc, storagePath } from "../global.helper";
|
import {
|
||||||
|
cleanDatabases,
|
||||||
|
dbLoc,
|
||||||
|
getActivatedExtension,
|
||||||
|
storagePath,
|
||||||
|
} from "../global.helper";
|
||||||
import { importArchiveDatabase } from "../../../src/databaseFetcher";
|
import { importArchiveDatabase } from "../../../src/databaseFetcher";
|
||||||
import { createMockCommandManager } from "../../__mocks__/commandsMock";
|
import { createMockCommandManager } from "../../__mocks__/commandsMock";
|
||||||
|
|
||||||
@@ -110,11 +114,7 @@ describeWithCodeQL()("using the new query server", () => {
|
|||||||
let supportNewQueryServer = true;
|
let supportNewQueryServer = true;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
if ("cliServer" in extension && "databaseManager" in extension) {
|
if ("cliServer" in extension && "databaseManager" in extension) {
|
||||||
cliServer = extension.cliServer;
|
cliServer = extension.cliServer;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import { extensions, window } from "vscode";
|
import { window } from "vscode";
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
|
|
||||||
import { CodeQLCliServer } from "../../../src/cli";
|
import { CodeQLCliServer } from "../../../src/cli";
|
||||||
import { CodeQLExtensionInterface } from "../../../src/extension";
|
|
||||||
import { getErrorMessage } from "../../../src/pure/helpers-pure";
|
import { getErrorMessage } from "../../../src/pure/helpers-pure";
|
||||||
|
|
||||||
import * as helpers from "../../../src/helpers";
|
import * as helpers from "../../../src/helpers";
|
||||||
@@ -11,6 +10,7 @@ import {
|
|||||||
handleInstallPackDependencies,
|
handleInstallPackDependencies,
|
||||||
} from "../../../src/packaging";
|
} from "../../../src/packaging";
|
||||||
import { mockedQuickPickItem } from "../utils/mocking.helpers";
|
import { mockedQuickPickItem } from "../utils/mocking.helpers";
|
||||||
|
import { getActivatedExtension } from "../global.helper";
|
||||||
|
|
||||||
// up to 3 minutes per test
|
// up to 3 minutes per test
|
||||||
jest.setTimeout(3 * 60 * 1000);
|
jest.setTimeout(3 * 60 * 1000);
|
||||||
@@ -41,11 +41,7 @@ describe("Packaging commands", () => {
|
|||||||
.spyOn(helpers, "showAndLogInformationMessage")
|
.spyOn(helpers, "showAndLogInformationMessage")
|
||||||
.mockResolvedValue(undefined);
|
.mockResolvedValue(undefined);
|
||||||
|
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
if ("cliServer" in extension) {
|
if ("cliServer" in extension) {
|
||||||
cli = extension.cliServer;
|
cli = extension.cliServer;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,10 +1,4 @@
|
|||||||
import {
|
import { CancellationToken, commands, ExtensionContext, Uri } from "vscode";
|
||||||
CancellationToken,
|
|
||||||
commands,
|
|
||||||
ExtensionContext,
|
|
||||||
extensions,
|
|
||||||
Uri,
|
|
||||||
} from "vscode";
|
|
||||||
import { join, dirname } from "path";
|
import { join, dirname } from "path";
|
||||||
import {
|
import {
|
||||||
pathExistsSync,
|
pathExistsSync,
|
||||||
@@ -16,8 +10,12 @@ import {
|
|||||||
import { load, dump } from "js-yaml";
|
import { load, dump } from "js-yaml";
|
||||||
|
|
||||||
import { DatabaseItem, DatabaseManager } from "../../../src/local-databases";
|
import { DatabaseItem, DatabaseManager } from "../../../src/local-databases";
|
||||||
import { CodeQLExtensionInterface } from "../../../src/extension";
|
import {
|
||||||
import { cleanDatabases, dbLoc, storagePath } from "../global.helper";
|
cleanDatabases,
|
||||||
|
dbLoc,
|
||||||
|
getActivatedExtension,
|
||||||
|
storagePath,
|
||||||
|
} from "../global.helper";
|
||||||
import { importArchiveDatabase } from "../../../src/databaseFetcher";
|
import { importArchiveDatabase } from "../../../src/databaseFetcher";
|
||||||
import { CliVersionConstraint, CodeQLCliServer } from "../../../src/cli";
|
import { CliVersionConstraint, CodeQLCliServer } from "../../../src/cli";
|
||||||
import { describeWithCodeQL } from "../cli";
|
import { describeWithCodeQL } from "../cli";
|
||||||
@@ -48,11 +46,7 @@ describeWithCodeQL()("Queries", () => {
|
|||||||
let qlFile: string;
|
let qlFile: string;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
if ("databaseManager" in extension) {
|
if ("databaseManager" in extension) {
|
||||||
databaseManager = extension.databaseManager;
|
databaseManager = extension.databaseManager;
|
||||||
cli = extension.cliServer;
|
cli = extension.cliServer;
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import { authentication, extensions, Uri } from "vscode";
|
import { authentication, Uri } from "vscode";
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { SemVer } from "semver";
|
import { SemVer } from "semver";
|
||||||
|
|
||||||
import { CodeQLCliServer, QueryInfoByLanguage } from "../../../src/cli";
|
import { CodeQLCliServer, QueryInfoByLanguage } from "../../../src/cli";
|
||||||
import { CodeQLExtensionInterface } from "../../../src/extension";
|
|
||||||
import { itWithCodeQL } from "../cli";
|
import { itWithCodeQL } from "../cli";
|
||||||
import {
|
import {
|
||||||
getOnDiskWorkspaceFolders,
|
getOnDiskWorkspaceFolders,
|
||||||
@@ -13,6 +12,7 @@ import {
|
|||||||
import { resolveQueries } from "../../../src/contextual/queryResolver";
|
import { resolveQueries } from "../../../src/contextual/queryResolver";
|
||||||
import { KeyType } from "../../../src/contextual/keyType";
|
import { KeyType } from "../../../src/contextual/keyType";
|
||||||
import { faker } from "@faker-js/faker";
|
import { faker } from "@faker-js/faker";
|
||||||
|
import { getActivatedExtension } from "../global.helper";
|
||||||
|
|
||||||
jest.setTimeout(60_000);
|
jest.setTimeout(60_000);
|
||||||
|
|
||||||
@@ -24,11 +24,7 @@ describe("Use cli", () => {
|
|||||||
let supportedLanguages: string[];
|
let supportedLanguages: string[];
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
if ("cliServer" in extension) {
|
if ("cliServer" in extension) {
|
||||||
cli = extension.cliServer;
|
cli = extension.cliServer;
|
||||||
supportedLanguages = await cli.getSupportedLanguages();
|
supportedLanguages = await cli.getSupportedLanguages();
|
||||||
|
|||||||
@@ -1,11 +1,4 @@
|
|||||||
import {
|
import { CancellationTokenSource, commands, Uri, window } from "vscode";
|
||||||
CancellationTokenSource,
|
|
||||||
commands,
|
|
||||||
extensions,
|
|
||||||
Uri,
|
|
||||||
window,
|
|
||||||
} from "vscode";
|
|
||||||
import { CodeQLExtensionInterface } from "../../../../src/extension";
|
|
||||||
import { extLogger } from "../../../../src/common";
|
import { extLogger } from "../../../../src/common";
|
||||||
import { setRemoteControllerRepo } from "../../../../src/config";
|
import { setRemoteControllerRepo } from "../../../../src/config";
|
||||||
import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client";
|
import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client";
|
||||||
@@ -15,6 +8,7 @@ import { VariantAnalysisManager } from "../../../../src/variant-analysis/variant
|
|||||||
import { CliVersionConstraint, CodeQLCliServer } from "../../../../src/cli";
|
import { CliVersionConstraint, CodeQLCliServer } from "../../../../src/cli";
|
||||||
import {
|
import {
|
||||||
fixWorkspaceReferences,
|
fixWorkspaceReferences,
|
||||||
|
getActivatedExtension,
|
||||||
restoreWorkspaceReferences,
|
restoreWorkspaceReferences,
|
||||||
storagePath,
|
storagePath,
|
||||||
} from "../../global.helper";
|
} from "../../global.helper";
|
||||||
@@ -48,11 +42,7 @@ describe("Variant Analysis Manager", () => {
|
|||||||
|
|
||||||
cancellationTokenSource = new CancellationTokenSource();
|
cancellationTokenSource = new CancellationTokenSource();
|
||||||
|
|
||||||
const extension = await extensions
|
const extension = await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
cli = extension.cliServer;
|
cli = extension.cliServer;
|
||||||
const app = new ExtensionApp(extension.ctx);
|
const app = new ExtensionApp(extension.ctx);
|
||||||
const dbManager = new DbManager(app, new DbConfigStore(app));
|
const dbManager = new DbManager(app, new DbConfigStore(app));
|
||||||
|
|||||||
@@ -3,16 +3,15 @@ import { resolve } from "path";
|
|||||||
import {
|
import {
|
||||||
authentication,
|
authentication,
|
||||||
commands,
|
commands,
|
||||||
extensions,
|
|
||||||
TextDocument,
|
TextDocument,
|
||||||
window,
|
window,
|
||||||
workspace,
|
workspace,
|
||||||
} from "vscode";
|
} from "vscode";
|
||||||
|
|
||||||
import { CodeQLExtensionInterface } from "../../../../src/extension";
|
|
||||||
import { MockGitHubApiServer } from "../../../../src/mocks/mock-gh-api-server";
|
import { MockGitHubApiServer } from "../../../../src/mocks/mock-gh-api-server";
|
||||||
import { mockedQuickPickItem } from "../../utils/mocking.helpers";
|
import { mockedQuickPickItem } from "../../utils/mocking.helpers";
|
||||||
import { setRemoteControllerRepo } from "../../../../src/config";
|
import { setRemoteControllerRepo } from "../../../../src/config";
|
||||||
|
import { getActivatedExtension } from "../../global.helper";
|
||||||
|
|
||||||
jest.setTimeout(30_000);
|
jest.setTimeout(30_000);
|
||||||
|
|
||||||
@@ -55,11 +54,7 @@ describe("Variant Analysis Submission Integration", () => {
|
|||||||
.spyOn(window, "showErrorMessage")
|
.spyOn(window, "showErrorMessage")
|
||||||
.mockResolvedValue(undefined);
|
.mockResolvedValue(undefined);
|
||||||
|
|
||||||
await extensions
|
await getActivatedExtension();
|
||||||
.getExtension<CodeQLExtensionInterface | Record<string, never>>(
|
|
||||||
"GitHub.vscode-codeql",
|
|
||||||
)!
|
|
||||||
.activate();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Successful scenario", () => {
|
describe("Successful scenario", () => {
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { load, dump } from "js-yaml";
|
import { load, dump } from "js-yaml";
|
||||||
import { realpathSync, readFileSync, writeFileSync } from "fs-extra";
|
import { realpathSync, readFileSync, writeFileSync } from "fs-extra";
|
||||||
import { commands } from "vscode";
|
import { commands, extensions } from "vscode";
|
||||||
import { DatabaseManager } from "../../src/local-databases";
|
import { DatabaseManager } from "../../src/local-databases";
|
||||||
import { CodeQLCliServer } from "../../src/cli";
|
import { CodeQLCliServer } from "../../src/cli";
|
||||||
import { removeWorkspaceRefs } from "../../src/variant-analysis/run-remote-query";
|
import { removeWorkspaceRefs } from "../../src/variant-analysis/run-remote-query";
|
||||||
|
import { CodeQLExtensionInterface } from "../../src/extension";
|
||||||
|
|
||||||
// This file contains helpers shared between tests that work with an activated extension.
|
// This file contains helpers shared between tests that work with an activated extension.
|
||||||
|
|
||||||
@@ -23,6 +24,16 @@ export function setStoragePath(path: string) {
|
|||||||
storagePath = path;
|
storagePath = path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getActivatedExtension(): Promise<CodeQLExtensionInterface> {
|
||||||
|
const extension = await extensions
|
||||||
|
.getExtension<CodeQLExtensionInterface | undefined>("GitHub.vscode-codeql")
|
||||||
|
?.activate();
|
||||||
|
if (extension === undefined) {
|
||||||
|
throw new Error("Unable to active CodeQL extension");
|
||||||
|
}
|
||||||
|
return extension;
|
||||||
|
}
|
||||||
|
|
||||||
export async function cleanDatabases(databaseManager: DatabaseManager) {
|
export async function cleanDatabases(databaseManager: DatabaseManager) {
|
||||||
for (const item of databaseManager.databaseItems) {
|
for (const item of databaseManager.databaseItems) {
|
||||||
await commands.executeCommand("codeQLDatabases.removeDatabase", item);
|
await commands.executeCommand("codeQLDatabases.removeDatabase", item);
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
import { CUSTOM_CODEQL_PATH_SETTING } from "../../src/config";
|
import { CUSTOM_CODEQL_PATH_SETTING } from "../../src/config";
|
||||||
import { ConfigurationTarget, env, extensions } from "vscode";
|
import { ConfigurationTarget, env } from "vscode";
|
||||||
import { beforeEachAction as testConfigBeforeEachAction } from "./test-config";
|
import { beforeEachAction as testConfigBeforeEachAction } from "./test-config";
|
||||||
import * as tmp from "tmp";
|
import * as tmp from "tmp";
|
||||||
import { realpathSync } from "fs-extra";
|
import { realpathSync } from "fs-extra";
|
||||||
import { setStoragePath, storagePath } from "./global.helper";
|
import {
|
||||||
|
getActivatedExtension,
|
||||||
|
setStoragePath,
|
||||||
|
storagePath,
|
||||||
|
} from "./global.helper";
|
||||||
|
|
||||||
if (process.env.CI) {
|
if (process.env.CI) {
|
||||||
jest.retryTimes(3, {
|
jest.retryTimes(3, {
|
||||||
@@ -35,7 +39,7 @@ export async function beforeAllAction() {
|
|||||||
removeStorage = dir.removeCallback;
|
removeStorage = dir.removeCallback;
|
||||||
|
|
||||||
// Activate the extension
|
// Activate the extension
|
||||||
await extensions.getExtension("GitHub.vscode-codeql")?.activate();
|
await getActivatedExtension();
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function beforeEachAction() {
|
export async function beforeEachAction() {
|
||||||
|
|||||||
Reference in New Issue
Block a user