Return a VariantAnalysis from runRemoteQuery

This commit is contained in:
Robert
2022-09-27 10:11:49 +01:00
parent 5dce5e83b0
commit ce7c7119c7
3 changed files with 37 additions and 6 deletions

View File

@@ -1,6 +1,8 @@
import { RemoteQuery } from './remote-query';
import { VariantAnalysis } from './shared/variant-analysis';
export interface RemoteQuerySubmissionResult {
queryDirPath?: string;
query?: RemoteQuery;
variantAnalysis?: VariantAnalysis;
}

View File

@@ -26,7 +26,7 @@ import { QueryMetadata } from '../pure/interface-types';
import { getErrorMessage, REPO_REGEX } from '../pure/helpers-pure';
import * as ghApiClient from './gh-api/gh-api-client';
import { getRepositorySelection, isValidSelection, RepositorySelection } from './repository-selection';
import { parseVariantAnalysisQueryLanguage, VariantAnalysisSubmission } from './shared/variant-analysis';
import { parseVariantAnalysisQueryLanguage, VariantAnalysis, VariantAnalysisStatus, VariantAnalysisSubmission } from './shared/variant-analysis';
import { Repository } from './shared/repository';
export interface QlPack {
@@ -269,9 +269,28 @@ export async function runRemoteQuery(
credentials,
variantAnalysisSubmission
);
const variantAnalysis: VariantAnalysis = {
id: variantAnalysisResponse.id,
controllerRepoId: variantAnalysisResponse.controller_repo.id,
query: {
name: variantAnalysisSubmission.query.name,
filePath: variantAnalysisSubmission.query.filePath,
language: variantAnalysisSubmission.query.language,
},
databases: {
repositories: variantAnalysisSubmission.databases.repositories,
repositoryLists: variantAnalysisSubmission.databases.repositoryLists,
repositoryOwners: variantAnalysisSubmission.databases.repositoryOwners,
},
status: VariantAnalysisStatus.InProgress,
};
// TODO: Remove once we have a proper notification
void showAndLogInformationMessage('Variant analysis submitted for processing');
void logger.log(`Variant analysis result:\n${JSON.stringify(variantAnalysisResponse)}`);
return;
void logger.log(`Variant analysis:\n${JSON.stringify(variantAnalysis, null, 2)}`);
return { variantAnalysis };
} else {
const apiResponse = await runRemoteQueriesApiRequest(credentials, actionBranch, language, repoSelection, controllerRepo, base64Pack, dryRun);

View File

@@ -17,6 +17,7 @@ import * as ghApiClient from '../../../remote-queries/gh-api/gh-api-client';
import { lte } from 'semver';
import { VariantAnalysis } from '../../../remote-queries/gh-api/variant-analysis';
import { Repository } from '../../../remote-queries/gh-api/repository';
import { VariantAnalysisStatus } from '../../../remote-queries/shared/variant-analysis';
describe('Remote queries', function() {
const baseDir = path.join(__dirname, '../../../../src/vscode-tests/cli-integration');
@@ -308,7 +309,10 @@ describe('Remote queries', function() {
const fileUri = getFile('data-remote-qlpack/in-pack.ql');
const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, true, progress, token);
expect(querySubmissionResult).to.be.undefined;
expect(querySubmissionResult).to.be.ok;
const variantAnalysis = querySubmissionResult!.variantAnalysis!;
expect(variantAnalysis.id).to.be.equal(dummyVariantAnalysis.id);
expect(variantAnalysis.status).to.be.equal(VariantAnalysisStatus.InProgress);
expect(getRepositoryFromNwoStub).to.have.been.calledOnce;
@@ -321,7 +325,10 @@ describe('Remote queries', function() {
const fileUri = getFile('data-remote-no-qlpack/in-pack.ql');
const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, true, progress, token);
expect(querySubmissionResult).to.be.undefined;
expect(querySubmissionResult).to.be.ok;
const variantAnalysis = querySubmissionResult!.variantAnalysis!;
expect(variantAnalysis.id).to.be.equal(dummyVariantAnalysis.id);
expect(variantAnalysis.status).to.be.equal(VariantAnalysisStatus.InProgress);
expect(getRepositoryFromNwoStub).to.have.been.calledOnce;
@@ -334,7 +341,10 @@ describe('Remote queries', function() {
const fileUri = getFile('data-remote-qlpack-nested/subfolder/in-pack.ql');
const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, true, progress, token);
expect(querySubmissionResult).to.be.undefined;
expect(querySubmissionResult).to.be.ok;
const variantAnalysis = querySubmissionResult!.variantAnalysis!;
expect(variantAnalysis.id).to.be.equal(dummyVariantAnalysis.id);
expect(variantAnalysis.status).to.be.equal(VariantAnalysisStatus.InProgress);
expect(getRepositoryFromNwoStub).to.have.been.calledOnce;