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:
Elena Tanasoiu
2022-10-17 14:34:15 +01:00
parent f2fe1063d9
commit 3a1800319a
3 changed files with 14 additions and 31 deletions

View File

@@ -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);
})
);

View File

@@ -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'); }

View File

@@ -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;