Convert the codeQL.autoDownloadVariantAnalysisResult command

This commit is contained in:
Robert
2023-03-20 15:30:19 +00:00
parent b55910d2b9
commit 5f2a8fa1d5
5 changed files with 11 additions and 68 deletions

View File

@@ -3,7 +3,10 @@ import type { Uri } from "vscode";
import type { DbTreeViewItem } from "../databases/ui/db-tree-view-item";
import type { QueryHistoryInfo } from "../query-history/query-history-info";
import { RepositoriesFilterSortStateWithIds } from "../pure/variant-analysis-filter-sort";
import { VariantAnalysis } from "../variant-analysis/shared/variant-analysis";
import {
VariantAnalysis,
VariantAnalysisScannedRepository,
} from "../variant-analysis/shared/variant-analysis";
// A command function matching the signature that VS Code calls when
// a command on a selection is invoked.
@@ -64,6 +67,10 @@ export type QueryHistoryCommands = {
// Commands tied to variant analysis
export type VariantAnalysisCommands = {
"codeQL.autoDownloadVariantAnalysisResult": (
scannedRepo: VariantAnalysisScannedRepository,
variantAnalysisSummary: VariantAnalysis,
) => Promise<void>;
"codeQL.copyVariantAnalysisRepoList": (
variantAnalysisId: number,
filterSort?: RepositoriesFilterSortStateWithIds,

View File

@@ -120,10 +120,6 @@ import { NewQueryRunner } from "./query-server/query-runner";
import { QueryRunner } from "./queryRunner";
import { VariantAnalysisView } from "./variant-analysis/variant-analysis-view";
import { VariantAnalysisViewSerializer } from "./variant-analysis/variant-analysis-view-serializer";
import {
VariantAnalysis,
VariantAnalysisScannedRepository,
} from "./variant-analysis/shared/variant-analysis";
import { VariantAnalysisManager } from "./variant-analysis/variant-analysis-manager";
import { createVariantAnalysisContentProvider } from "./variant-analysis/variant-analysis-content-provider";
import { VSCodeMockGitHubApiServer } from "./mocks/vscode-mock-gh-api-server";
@@ -1100,23 +1096,6 @@ async function activateWithInstalledDistribution(
app.commands.register(commandName as keyof AllCommands, command);
}
ctx.subscriptions.push(
commandRunner(
"codeQL.autoDownloadVariantAnalysisResult",
async (
scannedRepo: VariantAnalysisScannedRepository,
variantAnalysisSummary: VariantAnalysis,
token: CancellationToken,
) => {
await variantAnalysisManager.enqueueDownload(
scannedRepo,
variantAnalysisSummary,
token,
);
},
),
);
ctx.subscriptions.push(
commandRunner("codeQL.exportSelectedVariantAnalysisResults", async () => {
await exportSelectedVariantAnalysisResults(variantAnalysisManager, qhm);

View File

@@ -131,6 +131,8 @@ export class VariantAnalysisManager
getCommands(): VariantAnalysisCommands {
return {
"codeQL.autoDownloadVariantAnalysisResult":
this.enqueueDownload.bind(this),
"codeQL.copyVariantAnalysisRepoList":
this.copyRepoListToClipboard.bind(this),
"codeQL.monitorVariantAnalysis": this.monitorVariantAnalysis.bind(this),
@@ -507,7 +509,6 @@ export class VariantAnalysisManager
public async autoDownloadVariantAnalysisResult(
scannedRepo: VariantAnalysisScannedRepository,
variantAnalysis: VariantAnalysis,
cancellationToken: CancellationToken,
): Promise<void> {
if (
this.repoStates.get(variantAnalysis.id)?.[scannedRepo.repository.id]
@@ -524,13 +525,6 @@ export class VariantAnalysisManager
await this.onRepoStateUpdated(variantAnalysis.id, repoState);
if (cancellationToken && cancellationToken.isCancellationRequested) {
repoState.downloadStatus =
VariantAnalysisScannedRepositoryDownloadStatus.Failed;
await this.onRepoStateUpdated(variantAnalysis.id, repoState);
return;
}
let repoTask: VariantAnalysisRepositoryTask;
try {
const repoTaskResponse = await getVariantAnalysisRepo(
@@ -605,14 +599,9 @@ export class VariantAnalysisManager
public async enqueueDownload(
scannedRepo: VariantAnalysisScannedRepository,
variantAnalysis: VariantAnalysis,
token: CancellationToken,
): Promise<void> {
await this.queue.add(() =>
this.autoDownloadVariantAnalysisResult(
scannedRepo,
variantAnalysis,
token,
),
this.autoDownloadVariantAnalysisResult(scannedRepo, variantAnalysis),
);
}

View File

@@ -1,5 +1,4 @@
import {
CancellationTokenSource,
commands,
env,
extensions,
@@ -54,7 +53,6 @@ jest.setTimeout(3 * 60 * 1000);
describe("Variant Analysis Manager", () => {
let app: App;
let cancellationTokenSource: CancellationTokenSource;
let variantAnalysisManager: VariantAnalysisManager;
let variantAnalysisResultsManager: VariantAnalysisResultsManager;
let variantAnalysis: VariantAnalysis;
@@ -63,8 +61,6 @@ describe("Variant Analysis Manager", () => {
beforeEach(async () => {
jest.spyOn(extLogger, "log").mockResolvedValue(undefined);
cancellationTokenSource = new CancellationTokenSource();
scannedRepos = createMockScannedRepos();
variantAnalysis = createMockVariantAnalysis({
status: VariantAnalysisStatus.InProgress,
@@ -203,7 +199,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
expect(getVariantAnalysisRepoResultStub).not.toHaveBeenCalled();
@@ -228,23 +223,10 @@ describe("Variant Analysis Manager", () => {
getVariantAnalysisRepoResultStub.mockResolvedValue(response);
});
it("should return early if variant analysis is cancelled", async () => {
cancellationTokenSource.cancel();
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
expect(getVariantAnalysisRepoStub).not.toHaveBeenCalled();
});
it("should fetch a repo task", async () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
expect(getVariantAnalysisRepoStub).toHaveBeenCalled();
@@ -254,7 +236,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
expect(getVariantAnalysisRepoResultStub).toHaveBeenCalled();
@@ -265,7 +246,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
getVariantAnalysisRepoStub.mockClear();
@@ -273,7 +253,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
expect(getVariantAnalysisRepoStub).not.toHaveBeenCalled();
@@ -283,7 +262,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
await expect(fs.readJson(repoStatesPath)).resolves.toEqual({
@@ -304,7 +282,6 @@ describe("Variant Analysis Manager", () => {
variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
),
).rejects.toThrow();
@@ -320,7 +297,6 @@ describe("Variant Analysis Manager", () => {
variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
),
).rejects.toThrow();
@@ -329,7 +305,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[1],
variantAnalysis,
cancellationTokenSource.token,
);
await expect(fs.readJson(repoStatesPath)).resolves.toEqual({
@@ -355,7 +330,6 @@ describe("Variant Analysis Manager", () => {
variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
),
).rejects.toThrow();
@@ -364,7 +338,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[1],
variantAnalysis,
cancellationTokenSource.token,
);
await expect(fs.readJson(repoStatesPath)).resolves.toEqual({
@@ -400,7 +373,6 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
await expect(fs.readJson(repoStatesPath)).resolves.toEqual({
@@ -439,17 +411,14 @@ describe("Variant Analysis Manager", () => {
await variantAnalysisManager.enqueueDownload(
scannedRepos[0],
variantAnalysis,
cancellationTokenSource.token,
);
await variantAnalysisManager.enqueueDownload(
scannedRepos[1],
variantAnalysis,
cancellationTokenSource.token,
);
await variantAnalysisManager.enqueueDownload(
scannedRepos[2],
variantAnalysis,
cancellationTokenSource.token,
);
expect(variantAnalysisManager.downloadsQueueSize()).toBe(0);

View File

@@ -167,7 +167,6 @@ describe("Variant Analysis Monitor", () => {
index + 1,
processScannedRepository(succeededRepo),
processUpdatedVariantAnalysis(variantAnalysis, mockApiResponse),
undefined,
);
});
});