Move guts for adding task to a queue into a method
So that the extension command doesn't need to know how to push to a queue.
This commit is contained in:
@@ -951,10 +951,7 @@ async function activateWithInstalledDistribution(
|
||||
variantAnalysisSummary: VariantAnalysisApiResponse,
|
||||
token: CancellationToken
|
||||
) => {
|
||||
|
||||
await variantAnalysisManager.queue.add(async () => {
|
||||
await variantAnalysisManager.autoDownloadVariantAnalysisResult(scannedRepo, variantAnalysisSummary, token);
|
||||
});
|
||||
await variantAnalysisManager.enqueueDownload(scannedRepo, variantAnalysisSummary, token);
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
@@ -166,6 +166,16 @@ export class VariantAnalysisManager extends DisposableObject implements VariantA
|
||||
await this.onRepoStateUpdated(variantAnalysisSummary.id, repoState);
|
||||
}
|
||||
|
||||
public async enqueueDownload(
|
||||
scannedRepo: ApiVariantAnalysisScannedRepository,
|
||||
variantAnalysisSummary: VariantAnalysisApiResponse,
|
||||
token: CancellationToken
|
||||
): Promise<void> {
|
||||
await this.queue.add(async () => {
|
||||
await this.autoDownloadVariantAnalysisResult(scannedRepo, variantAnalysisSummary, token);
|
||||
});
|
||||
}
|
||||
|
||||
public async promptOpenVariantAnalysis() {
|
||||
const credentials = await Credentials.initialize(this.ctx);
|
||||
if (!credentials) { throw Error('Error authenticating with GitHub'); }
|
||||
|
||||
@@ -153,33 +153,9 @@ describe('Variant Analysis Manager', async function() {
|
||||
it('should pop download tasks off the queue', async () => {
|
||||
const getResultsSpy = sandbox.spy(variantAnalysisManager, 'autoDownloadVariantAnalysisResult');
|
||||
|
||||
const input = [
|
||||
variantAnalysisManager.queue.add(async () => {
|
||||
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
||||
scannedRepos[0],
|
||||
variantAnalysis,
|
||||
cancellationTokenSource.token
|
||||
);
|
||||
}),
|
||||
variantAnalysisManager.queue.add(async () => {
|
||||
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
||||
scannedRepos[0],
|
||||
variantAnalysis,
|
||||
cancellationTokenSource.token
|
||||
);
|
||||
}),
|
||||
variantAnalysisManager.queue.add(async () => {
|
||||
await variantAnalysisManager.autoDownloadVariantAnalysisResult(
|
||||
scannedRepos[0],
|
||||
variantAnalysis,
|
||||
cancellationTokenSource.token
|
||||
);
|
||||
})
|
||||
];
|
||||
|
||||
expect(variantAnalysisManager.queue.pending).to.equal(3);
|
||||
|
||||
await Promise.all(input);
|
||||
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.queue.pending).to.equal(0);
|
||||
expect(getResultsSpy).to.have.been.calledThrice;
|
||||
|
||||
Reference in New Issue
Block a user