Skip to content

Commit 44a3e6b

Browse files
authored
Subscribe to new variant analyses events in query history (#1598)
1 parent 8b2a3b1 commit 44a3e6b

File tree

5 files changed

+35
-2
lines changed

5 files changed

+35
-2
lines changed

extensions/ql-vscode/src/extension.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,7 @@ async function activateWithInstalledDistribution(
498498
dbm,
499499
localQueryResultsView,
500500
rqm,
501+
variantAnalysisManager,
501502
evalLogViewer,
502503
queryStorageDir,
503504
ctx,

extensions/ql-vscode/src/query-history.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import EvalLogTreeBuilder from './eval-log-tree-builder';
4949
import { EvalLogData, parseViewerData } from './pure/log-summary-parser';
5050
import { QueryWithResults } from './run-queries-shared';
5151
import { QueryRunner } from './queryRunner';
52+
import { VariantAnalysisManager } from './remote-queries/variant-analysis-manager';
5253

5354
/**
5455
* query-history.ts
@@ -342,6 +343,7 @@ export class QueryHistoryManager extends DisposableObject {
342343
private readonly dbm: DatabaseManager,
343344
private readonly localQueriesResultsView: ResultsView,
344345
private readonly remoteQueriesManager: RemoteQueriesManager,
346+
private readonly variantAnalysisManager: VariantAnalysisManager,
345347
private readonly evalLogViewer: EvalLogViewer,
346348
private readonly queryStorageDir: string,
347349
private readonly ctx: ExtensionContext,
@@ -564,6 +566,7 @@ export class QueryHistoryManager extends DisposableObject {
564566

565567
this.registerQueryHistoryScrubber(queryHistoryConfigListener, this, ctx);
566568
this.registerToRemoteQueriesEvents();
569+
this.registerToVariantAnalysisEvents();
567570
}
568571

569572
public completeQuery(info: LocalQueryInfo, results: QueryWithResults): void {
@@ -593,6 +596,21 @@ export class QueryHistoryManager extends DisposableObject {
593596
);
594597
}
595598

599+
private registerToVariantAnalysisEvents() {
600+
const variantAnalysisAddedSubscription = this.variantAnalysisManager.onVariantAnalysisAdded(async (variantAnalysis) => {
601+
this.addQuery({
602+
t: 'variant-analysis',
603+
status: QueryStatus.InProgress,
604+
completed: false,
605+
variantAnalysis,
606+
});
607+
608+
await this.refreshTreeView();
609+
});
610+
611+
this.push(variantAnalysisAddedSubscription);
612+
}
613+
596614
private registerToRemoteQueriesEvents() {
597615
const queryAddedSubscription = this.remoteQueriesManager.onRemoteQueryAdded(async (event) => {
598616
this.addQuery({

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import { getControllerRepo } from './run-remote-query';
2424
import { processUpdatedVariantAnalysis } from './variant-analysis-processor';
2525

2626
export class VariantAnalysisManager extends DisposableObject implements VariantAnalysisViewManager<VariantAnalysisView> {
27-
private readonly _onVariantAnalysisAdded = this.push(new EventEmitter<VariantAnalysis | undefined>());
28-
readonly onVariantAnalysisAdded = this._onVariantAnalysisAdded.event;
27+
private readonly _onVariantAnalysisAdded = this.push(new EventEmitter<VariantAnalysis>());
28+
public readonly onVariantAnalysisAdded = this._onVariantAnalysisAdded.event;
2929

3030
private readonly variantAnalysisMonitor: VariantAnalysisMonitor;
3131
private readonly variantAnalysisResultsManager: VariantAnalysisResultsManager;

extensions/ql-vscode/src/vscode-tests/no-workspace/query-history.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { ResultsView } from '../../interface';
2121
import { EvalLogViewer } from '../../eval-log-viewer';
2222
import { QueryRunner } from '../../queryRunner';
2323
import { QueryResultType } from '../../pure/legacy-messages';
24+
import { VariantAnalysisManager } from '../../remote-queries/variant-analysis-manager';
2425

2526
describe('query-history', () => {
2627
const mockExtensionLocation = path.join(tmpDir.name, 'mock-extension-location');
@@ -34,6 +35,7 @@ describe('query-history', () => {
3435

3536
let localQueriesResultsViewStub: ResultsView;
3637
let remoteQueriesManagerStub: RemoteQueriesManager;
38+
let variantAnalysisManagerStub: VariantAnalysisManager;
3739

3840
let tryOpenExternalFile: Function;
3941
let sandbox: sinon.SinonSandbox;
@@ -63,6 +65,10 @@ describe('query-history', () => {
6365
onRemoteQueryRemoved: sandbox.stub(),
6466
onRemoteQueryStatusUpdate: sandbox.stub()
6567
} as any as RemoteQueriesManager;
68+
69+
variantAnalysisManagerStub = {
70+
onVariantAnalysisAdded: sandbox.stub()
71+
} as any as VariantAnalysisManager;
6672
});
6773

6874
afterEach(async () => {
@@ -803,6 +809,7 @@ describe('query-history', () => {
803809
{} as DatabaseManager,
804810
localQueriesResultsViewStub,
805811
remoteQueriesManagerStub,
812+
variantAnalysisManagerStub,
806813
{} as EvalLogViewer,
807814
'xxx',
808815
{

extensions/ql-vscode/src/vscode-tests/no-workspace/remote-queries/remote-query-history.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { RemoteQueriesManager } from '../../../remote-queries/remote-queries-man
2020
import { ResultsView } from '../../../interface';
2121
import { EvalLogViewer } from '../../../eval-log-viewer';
2222
import { QueryRunner } from '../../../queryRunner';
23+
import { VariantAnalysisManager } from '../../../remote-queries/variant-analysis-manager';
2324

2425
/**
2526
* Tests for remote queries and how they interact with the query history manager.
@@ -35,6 +36,7 @@ describe('Remote queries and query history manager', function() {
3536
let qhm: QueryHistoryManager;
3637
let localQueriesResultsViewStub: ResultsView;
3738
let remoteQueriesManagerStub: RemoteQueriesManager;
39+
let variantAnalysisManagerStub: VariantAnalysisManager;
3840
let rawQueryHistory: any;
3941
let remoteQueryResult0: RemoteQueryResult;
4042
let remoteQueryResult1: RemoteQueryResult;
@@ -73,6 +75,10 @@ describe('Remote queries and query history manager', function() {
7375
removeRemoteQuery: removeRemoteQueryStub,
7476
openRemoteQueryResults: openRemoteQueryResultsStub
7577
} as any as RemoteQueriesManager;
78+
79+
variantAnalysisManagerStub = {
80+
onVariantAnalysisAdded: sandbox.stub()
81+
} as any as VariantAnalysisManager;
7682
});
7783

7884
afterEach(function() {
@@ -94,6 +100,7 @@ describe('Remote queries and query history manager', function() {
94100
{} as DatabaseManager,
95101
localQueriesResultsViewStub,
96102
remoteQueriesManagerStub,
103+
variantAnalysisManagerStub,
97104
{} as EvalLogViewer,
98105
STORAGE_DIR,
99106
{

0 commit comments

Comments
 (0)