Merge pull request #1658 from github/elena/add-tests-for-removal
Add test for `removeVariantAnalysis`
This commit is contained in:
@@ -117,6 +117,10 @@ export class VariantAnalysisManager extends DisposableObject implements VariantA
|
|||||||
return this.variantAnalyses.get(variantAnalysisId);
|
return this.variantAnalyses.get(variantAnalysisId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public get variantAnalysesSize(): number {
|
||||||
|
return this.variantAnalyses.size;
|
||||||
|
}
|
||||||
|
|
||||||
public async loadResults(variantAnalysisId: number, repositoryFullName: string): Promise<void> {
|
public async loadResults(variantAnalysisId: number, repositoryFullName: string): Promise<void> {
|
||||||
const variantAnalysis = this.variantAnalyses.get(variantAnalysisId);
|
const variantAnalysis = this.variantAnalyses.get(variantAnalysisId);
|
||||||
if (!variantAnalysis) {
|
if (!variantAnalysis) {
|
||||||
@@ -131,7 +135,7 @@ export class VariantAnalysisManager extends DisposableObject implements VariantA
|
|||||||
return await fs.pathExists(filePath);
|
return await fs.pathExists(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async onVariantAnalysisUpdated(variantAnalysis: VariantAnalysis | undefined): Promise<void> {
|
public async onVariantAnalysisUpdated(variantAnalysis: VariantAnalysis | undefined): Promise<void> {
|
||||||
if (!variantAnalysis) {
|
if (!variantAnalysis) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ import { createMockVariantAnalysisRepoTask } from '../../factories/remote-querie
|
|||||||
import { CodeQLCliServer } from '../../../cli';
|
import { CodeQLCliServer } from '../../../cli';
|
||||||
import { storagePath } from '../global.helper';
|
import { storagePath } from '../global.helper';
|
||||||
import { VariantAnalysisResultsManager } from '../../../remote-queries/variant-analysis-results-manager';
|
import { VariantAnalysisResultsManager } from '../../../remote-queries/variant-analysis-results-manager';
|
||||||
|
import { VariantAnalysis } from '../../../remote-queries/shared/variant-analysis';
|
||||||
|
import { createMockVariantAnalysis } from '../../factories/remote-queries/shared/variant-analysis';
|
||||||
|
|
||||||
describe('Variant Analysis Manager', async function() {
|
describe('Variant Analysis Manager', async function() {
|
||||||
let sandbox: sinon.SinonSandbox;
|
let sandbox: sinon.SinonSandbox;
|
||||||
@@ -121,47 +123,74 @@ describe('Variant Analysis Manager', async function() {
|
|||||||
getVariantAnalysisRepoResultStub = sandbox.stub(ghApiClient, 'getVariantAnalysisRepoResult').resolves(arrayBuffer);
|
getVariantAnalysisRepoResultStub = sandbox.stub(ghApiClient, 'getVariantAnalysisRepoResult').resolves(arrayBuffer);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return early if variant analysis is cancelled', async () => {
|
describe('autoDownloadVariantAnalysisResult', async () => {
|
||||||
cancellationTokenSource.cancel();
|
it('should return early if variant analysis is cancelled', async () => {
|
||||||
|
cancellationTokenSource.cancel();
|
||||||
|
|
||||||
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
||||||
scannedRepos[0],
|
scannedRepos[0],
|
||||||
variantAnalysis,
|
variantAnalysis,
|
||||||
cancellationTokenSource.token
|
cancellationTokenSource.token
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(getVariantAnalysisRepoStub.notCalled).to.be.true;
|
expect(getVariantAnalysisRepoStub.notCalled).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fetch a repo task', async () => {
|
||||||
|
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
||||||
|
scannedRepos[0],
|
||||||
|
variantAnalysis,
|
||||||
|
cancellationTokenSource.token
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(getVariantAnalysisRepoStub.calledOnce).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fetch a repo result', async () => {
|
||||||
|
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
||||||
|
scannedRepos[0],
|
||||||
|
variantAnalysis,
|
||||||
|
cancellationTokenSource.token
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(getVariantAnalysisRepoResultStub.calledOnce).to.be.true;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fetch a repo task', async () => {
|
describe('enqueueDownload', async () => {
|
||||||
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
it('should pop download tasks off the queue', async () => {
|
||||||
scannedRepos[0],
|
const getResultsSpy = sandbox.spy(variantAnalysisManager, 'autoDownloadVariantAnalysisResult');
|
||||||
variantAnalysis,
|
|
||||||
cancellationTokenSource.token
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(getVariantAnalysisRepoStub.calledOnce).to.be.true;
|
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()).to.equal(0);
|
||||||
|
expect(getResultsSpy).to.have.been.calledThrice;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fetch a repo result', async () => {
|
describe('removeVariantAnalysis', async () => {
|
||||||
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
let removeAnalysisResultsStub: sinon.SinonStub;
|
||||||
scannedRepos[0],
|
let removeStorageStub: sinon.SinonStub;
|
||||||
variantAnalysis,
|
let dummyVariantAnalysis: VariantAnalysis;
|
||||||
cancellationTokenSource.token
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(getVariantAnalysisRepoResultStub.calledOnce).to.be.true;
|
beforeEach(async () => {
|
||||||
});
|
dummyVariantAnalysis = createMockVariantAnalysis();
|
||||||
|
removeAnalysisResultsStub = sandbox.stub(variantAnalysisResultsManager, 'removeAnalysisResults');
|
||||||
|
removeStorageStub = sandbox.stub(fs, 'remove');
|
||||||
|
});
|
||||||
|
|
||||||
it('should pop download tasks off the queue', async () => {
|
it('should remove variant analysis', async () => {
|
||||||
const getResultsSpy = sandbox.spy(variantAnalysisManager, 'autoDownloadVariantAnalysisResult');
|
await variantAnalysisManager.onVariantAnalysisUpdated(dummyVariantAnalysis);
|
||||||
|
expect(variantAnalysisManager.variantAnalysesSize).to.eq(1);
|
||||||
|
|
||||||
await variantAnalysisManager.enqueueDownload(scannedRepos[0], variantAnalysis, cancellationTokenSource.token);
|
await variantAnalysisManager.removeVariantAnalysis(dummyVariantAnalysis);
|
||||||
await variantAnalysisManager.enqueueDownload(scannedRepos[1], variantAnalysis, cancellationTokenSource.token);
|
|
||||||
await variantAnalysisManager.enqueueDownload(scannedRepos[2], variantAnalysis, cancellationTokenSource.token);
|
|
||||||
|
|
||||||
expect(variantAnalysisManager.downloadsQueueSize()).to.equal(0);
|
expect(removeAnalysisResultsStub).to.have.been.calledOnce;
|
||||||
expect(getResultsSpy).to.have.been.calledThrice;
|
expect(removeStorageStub).to.have.been.calledOnce;
|
||||||
|
expect(variantAnalysisManager.variantAnalysesSize).to.equal(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user