Define mock variant analysis with scanned repos

Now that we have a monitor, we expect the variant analysis to return
a list of scanned repos.

Let's re-use our previous factory for creating mocked responses to
get a dummy variant analysis with scanned repos.
This commit is contained in:
Elena Tanasoiu
2022-09-28 10:32:42 +01:00
parent c032e4f9a7
commit e4de8c6b9b

View File

@@ -15,9 +15,12 @@ import * as config from '../../../config';
import { UserCancellationException } from '../../../commandRunner';
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 {
VariantAnalysis as VariantAnalysisApiResponse
} from '../../../remote-queries/gh-api/variant-analysis';
import { Repository } from '../../../remote-queries/gh-api/repository';
import { VariantAnalysisStatus } from '../../../remote-queries/shared/variant-analysis';
import { createMockApiResponse } from '../../factories/remote-queries/gh-api/variant-analysis-api-response';
describe('Remote queries', function() {
const baseDir = path.join(__dirname, '../../../../src/vscode-tests/cli-integration');
@@ -285,70 +288,52 @@ describe('Remote queries', function() {
});
describe('when live results are enabled', () => {
let mockApiResponse: VariantAnalysisApiResponse;
let mockSubmitVariantAnalysis: sinon.SinonStub;
beforeEach(() => {
liveResultsStub.returns(true);
mockApiResponse = createMockApiResponse('in_progress');
mockSubmitVariantAnalysis = sandbox.stub(ghApiClient, 'submitVariantAnalysis').resolves(mockApiResponse);
});
const dummyVariantAnalysis: VariantAnalysis = {
id: 123,
controller_repo: {
id: 64,
name: 'pickles',
full_name: 'github/pickles',
private: false,
},
actor_id: 27,
query_language: 'javascript',
query_pack_url: 'https://example.com/foo',
status: 'in_progress',
};
it('should run a variant analysis that is part of a qlpack', async () => {
const submitVariantAnalysisStub = sandbox.stub(ghApiClient, 'submitVariantAnalysis').resolves(dummyVariantAnalysis);
const fileUri = getFile('data-remote-qlpack/in-pack.ql');
const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, true, progress, token);
expect(querySubmissionResult).to.be.ok;
const variantAnalysis = querySubmissionResult!.variantAnalysis!;
expect(variantAnalysis.id).to.be.equal(dummyVariantAnalysis.id);
expect(variantAnalysis.id).to.be.equal(mockApiResponse.id);
expect(variantAnalysis.status).to.be.equal(VariantAnalysisStatus.InProgress);
expect(getRepositoryFromNwoStub).to.have.been.calledOnce;
expect(submitVariantAnalysisStub).to.have.been.calledOnce;
expect(mockSubmitVariantAnalysis).to.have.been.calledOnce;
});
it('should run a remote query that is not part of a qlpack', async () => {
const submitVariantAnalysisStub = sandbox.stub(ghApiClient, 'submitVariantAnalysis').resolves(dummyVariantAnalysis);
const fileUri = getFile('data-remote-no-qlpack/in-pack.ql');
const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, true, progress, token);
expect(querySubmissionResult).to.be.ok;
const variantAnalysis = querySubmissionResult!.variantAnalysis!;
expect(variantAnalysis.id).to.be.equal(dummyVariantAnalysis.id);
expect(variantAnalysis.id).to.be.equal(mockApiResponse.id);
expect(variantAnalysis.status).to.be.equal(VariantAnalysisStatus.InProgress);
expect(getRepositoryFromNwoStub).to.have.been.calledOnce;
expect(submitVariantAnalysisStub).to.have.been.calledOnce;
expect(mockSubmitVariantAnalysis).to.have.been.calledOnce;
});
it('should run a remote query that is nested inside a qlpack', async () => {
const submitVariantAnalysisStub = sandbox.stub(ghApiClient, 'submitVariantAnalysis').resolves(dummyVariantAnalysis);
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.ok;
const variantAnalysis = querySubmissionResult!.variantAnalysis!;
expect(variantAnalysis.id).to.be.equal(dummyVariantAnalysis.id);
expect(variantAnalysis.id).to.be.equal(mockApiResponse.id);
expect(variantAnalysis.status).to.be.equal(VariantAnalysisStatus.InProgress);
expect(getRepositoryFromNwoStub).to.have.been.calledOnce;
expect(submitVariantAnalysisStub).to.have.been.calledOnce;
expect(mockSubmitVariantAnalysis).to.have.been.calledOnce;
});
it('should cancel a run before uploading', async () => {