Subscribe to new variant analyses events in query history (#1598)

This commit is contained in:
Charis Kyriakou
2022-10-14 10:25:03 +01:00
committed by GitHub
parent 8b2a3b18ce
commit 44a3e6b557
5 changed files with 35 additions and 2 deletions

View File

@@ -498,6 +498,7 @@ async function activateWithInstalledDistribution(
dbm,
localQueryResultsView,
rqm,
variantAnalysisManager,
evalLogViewer,
queryStorageDir,
ctx,

View File

@@ -49,6 +49,7 @@ import EvalLogTreeBuilder from './eval-log-tree-builder';
import { EvalLogData, parseViewerData } from './pure/log-summary-parser';
import { QueryWithResults } from './run-queries-shared';
import { QueryRunner } from './queryRunner';
import { VariantAnalysisManager } from './remote-queries/variant-analysis-manager';
/**
* query-history.ts
@@ -342,6 +343,7 @@ export class QueryHistoryManager extends DisposableObject {
private readonly dbm: DatabaseManager,
private readonly localQueriesResultsView: ResultsView,
private readonly remoteQueriesManager: RemoteQueriesManager,
private readonly variantAnalysisManager: VariantAnalysisManager,
private readonly evalLogViewer: EvalLogViewer,
private readonly queryStorageDir: string,
private readonly ctx: ExtensionContext,
@@ -564,6 +566,7 @@ export class QueryHistoryManager extends DisposableObject {
this.registerQueryHistoryScrubber(queryHistoryConfigListener, this, ctx);
this.registerToRemoteQueriesEvents();
this.registerToVariantAnalysisEvents();
}
public completeQuery(info: LocalQueryInfo, results: QueryWithResults): void {
@@ -593,6 +596,21 @@ export class QueryHistoryManager extends DisposableObject {
);
}
private registerToVariantAnalysisEvents() {
const variantAnalysisAddedSubscription = this.variantAnalysisManager.onVariantAnalysisAdded(async (variantAnalysis) => {
this.addQuery({
t: 'variant-analysis',
status: QueryStatus.InProgress,
completed: false,
variantAnalysis,
});
await this.refreshTreeView();
});
this.push(variantAnalysisAddedSubscription);
}
private registerToRemoteQueriesEvents() {
const queryAddedSubscription = this.remoteQueriesManager.onRemoteQueryAdded(async (event) => {
this.addQuery({

View File

@@ -24,8 +24,8 @@ import { getControllerRepo } from './run-remote-query';
import { processUpdatedVariantAnalysis } from './variant-analysis-processor';
export class VariantAnalysisManager extends DisposableObject implements VariantAnalysisViewManager<VariantAnalysisView> {
private readonly _onVariantAnalysisAdded = this.push(new EventEmitter<VariantAnalysis | undefined>());
readonly onVariantAnalysisAdded = this._onVariantAnalysisAdded.event;
private readonly _onVariantAnalysisAdded = this.push(new EventEmitter<VariantAnalysis>());
public readonly onVariantAnalysisAdded = this._onVariantAnalysisAdded.event;
private readonly variantAnalysisMonitor: VariantAnalysisMonitor;
private readonly variantAnalysisResultsManager: VariantAnalysisResultsManager;

View File

@@ -21,6 +21,7 @@ import { ResultsView } from '../../interface';
import { EvalLogViewer } from '../../eval-log-viewer';
import { QueryRunner } from '../../queryRunner';
import { QueryResultType } from '../../pure/legacy-messages';
import { VariantAnalysisManager } from '../../remote-queries/variant-analysis-manager';
describe('query-history', () => {
const mockExtensionLocation = path.join(tmpDir.name, 'mock-extension-location');
@@ -34,6 +35,7 @@ describe('query-history', () => {
let localQueriesResultsViewStub: ResultsView;
let remoteQueriesManagerStub: RemoteQueriesManager;
let variantAnalysisManagerStub: VariantAnalysisManager;
let tryOpenExternalFile: Function;
let sandbox: sinon.SinonSandbox;
@@ -63,6 +65,10 @@ describe('query-history', () => {
onRemoteQueryRemoved: sandbox.stub(),
onRemoteQueryStatusUpdate: sandbox.stub()
} as any as RemoteQueriesManager;
variantAnalysisManagerStub = {
onVariantAnalysisAdded: sandbox.stub()
} as any as VariantAnalysisManager;
});
afterEach(async () => {
@@ -803,6 +809,7 @@ describe('query-history', () => {
{} as DatabaseManager,
localQueriesResultsViewStub,
remoteQueriesManagerStub,
variantAnalysisManagerStub,
{} as EvalLogViewer,
'xxx',
{

View File

@@ -20,6 +20,7 @@ import { RemoteQueriesManager } from '../../../remote-queries/remote-queries-man
import { ResultsView } from '../../../interface';
import { EvalLogViewer } from '../../../eval-log-viewer';
import { QueryRunner } from '../../../queryRunner';
import { VariantAnalysisManager } from '../../../remote-queries/variant-analysis-manager';
/**
* 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() {
let qhm: QueryHistoryManager;
let localQueriesResultsViewStub: ResultsView;
let remoteQueriesManagerStub: RemoteQueriesManager;
let variantAnalysisManagerStub: VariantAnalysisManager;
let rawQueryHistory: any;
let remoteQueryResult0: RemoteQueryResult;
let remoteQueryResult1: RemoteQueryResult;
@@ -73,6 +75,10 @@ describe('Remote queries and query history manager', function() {
removeRemoteQuery: removeRemoteQueryStub,
openRemoteQueryResults: openRemoteQueryResultsStub
} as any as RemoteQueriesManager;
variantAnalysisManagerStub = {
onVariantAnalysisAdded: sandbox.stub()
} as any as VariantAnalysisManager;
});
afterEach(function() {
@@ -94,6 +100,7 @@ describe('Remote queries and query history manager', function() {
{} as DatabaseManager,
localQueriesResultsViewStub,
remoteQueriesManagerStub,
variantAnalysisManagerStub,
{} as EvalLogViewer,
STORAGE_DIR,
{