Skip to content

Commit 1196491

Browse files
authored
Emit "update" events while variant analysis is being monitored (#1579)
1 parent 4c527a3 commit 1196491

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

extensions/ql-vscode/src/remote-queries/variant-analysis-monitor.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ export class VariantAnalysisMonitor extends DisposableObject {
5959
if (variantAnalysisSummary.failure_reason) {
6060
variantAnalysis.status = VariantAnalysisStatus.Failed;
6161
variantAnalysis.failureReason = processFailureReason(variantAnalysisSummary.failure_reason);
62+
63+
this._onVariantAnalysisChange.fire(variantAnalysis);
64+
6265
return {
6366
status: 'Failed',
6467
error: `Variant Analysis has failed: ${variantAnalysisSummary.failure_reason}`,

extensions/ql-vscode/src/vscode-tests/cli-integration/remote-queries/variant-analysis-monitor.test.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import { Credentials } from '../../../authentication';
2020
import { createMockVariantAnalysis } from '../../factories/remote-queries/shared/variant-analysis';
2121

2222
describe('Variant Analysis Monitor', async function() {
23+
this.timeout(60000);
24+
2325
let sandbox: sinon.SinonSandbox;
2426
let mockGetVariantAnalysis: sinon.SinonStub;
2527
let cancellationTokenSource: CancellationTokenSource;
@@ -96,9 +98,18 @@ describe('Variant Analysis Monitor', async function() {
9698
expect(result.variantAnalysis?.status).to.equal(VariantAnalysisStatus.Failed);
9799
expect(result.variantAnalysis?.failureReason).to.equal(processFailureReason(mockFailedApiResponse.failure_reason as VariantAnalysisFailureReason));
98100
});
101+
102+
it('should emit `onVariantAnalysisChange`', async () => {
103+
const spy = sandbox.spy();
104+
variantAnalysisMonitor.onVariantAnalysisChange(spy);
105+
106+
const result = await variantAnalysisMonitor.monitorVariantAnalysis(variantAnalysis, cancellationTokenSource.token);
107+
108+
expect(spy).to.have.been.calledWith(result.variantAnalysis);
109+
});
99110
});
100111

101-
describe('when the variant analysis completes', async () => {
112+
describe('when the variant analysis is in progress', async () => {
102113
let mockApiResponse: VariantAnalysisApiResponse;
103114
let scannedRepos: ApiVariantAnalysisScannedRepository[];
104115

0 commit comments

Comments
 (0)