11import { assert , expect } from 'chai' ;
22import * as path from 'path' ;
33import * as sinon from 'sinon' ;
4- import { CancellationTokenSource , extensions , QuickPickItem , Uri , window } from 'vscode' ;
4+ import { CancellationTokenSource , ExtensionContext , extensions , QuickPickItem , Uri , window } from 'vscode' ;
55import * as fs from 'fs-extra' ;
66import * as os from 'os' ;
77import * as yaml from 'js-yaml' ;
@@ -21,6 +21,9 @@ import {
2121import { Repository } from '../../../remote-queries/gh-api/repository' ;
2222import { VariantAnalysisStatus } from '../../../remote-queries/shared/variant-analysis' ;
2323import { createMockApiResponse } from '../../factories/remote-queries/gh-api/variant-analysis-api-response' ;
24+ import { createMockExtensionContext } from '../../no-workspace' ;
25+ import { VariantAnalysisManager } from '../../../remote-queries/variant-analysis-manager' ;
26+ import { OutputChannelLogger } from '../../../logging' ;
2427
2528describe ( 'Remote queries' , function ( ) {
2629 const baseDir = path . join ( __dirname , '../../../../src/vscode-tests/cli-integration' ) ;
@@ -37,6 +40,9 @@ describe('Remote queries', function() {
3740 let showQuickPickSpy : sinon . SinonStub ;
3841 let getRepositoryFromNwoStub : sinon . SinonStub ;
3942 let liveResultsStub : sinon . SinonStub ;
43+ let ctx : ExtensionContext ;
44+ let logger : any ;
45+ let variantAnalysisManager : VariantAnalysisManager ;
4046
4147 // use `function` so we have access to `this`
4248 beforeEach ( async function ( ) {
@@ -49,6 +55,10 @@ describe('Remote queries', function() {
4955 throw new Error ( 'Extension not initialized. Make sure cli is downloaded and installed properly.' ) ;
5056 }
5157
58+ ctx = createMockExtensionContext ( ) ;
59+ logger = new OutputChannelLogger ( 'test-logger' ) ;
60+ variantAnalysisManager = new VariantAnalysisManager ( ctx , cli , 'fake-storage-dir' , logger ) ;
61+
5262 if ( ! ( await cli . cliConstraints . supportsRemoteQueries ( ) ) ) {
5363 console . log ( `Remote queries are not supported on CodeQL CLI v${ CliVersionConstraint . CLI_VERSION_REMOTE_QUERIES
5464 } . Skipping this test.`) ;
@@ -94,7 +104,7 @@ describe('Remote queries', function() {
94104 it ( 'should run a remote query that is part of a qlpack' , async ( ) => {
95105 const fileUri = getFile ( 'data-remote-qlpack/in-pack.ql' ) ;
96106
97- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
107+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
98108 expect ( querySubmissionResult ) . to . be . ok ;
99109 const queryPackRootDir = querySubmissionResult ! . queryDirPath ! ;
100110 printDirectoryContents ( queryPackRootDir ) ;
@@ -155,7 +165,7 @@ describe('Remote queries', function() {
155165 it ( 'should run a remote query that is not part of a qlpack' , async ( ) => {
156166 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
157167
158- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
168+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
159169 expect ( querySubmissionResult ) . to . be . ok ;
160170 const queryPackRootDir = querySubmissionResult ! . queryDirPath ! ;
161171
@@ -218,7 +228,7 @@ describe('Remote queries', function() {
218228 it ( 'should run a remote query that is nested inside a qlpack' , async ( ) => {
219229 const fileUri = getFile ( 'data-remote-qlpack-nested/subfolder/in-pack.ql' ) ;
220230
221- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
231+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
222232 expect ( querySubmissionResult ) . to . be . ok ;
223233 const queryPackRootDir = querySubmissionResult ! . queryDirPath ! ;
224234
@@ -280,7 +290,7 @@ describe('Remote queries', function() {
280290 it ( 'should cancel a run before uploading' , async ( ) => {
281291 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
282292
283- const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
293+ const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
284294
285295 cancellationTokenSource . token . isCancellationRequested = true ;
286296
@@ -306,7 +316,7 @@ describe('Remote queries', function() {
306316 it ( 'should run a variant analysis that is part of a qlpack' , async ( ) => {
307317 const fileUri = getFile ( 'data-remote-qlpack/in-pack.ql' ) ;
308318
309- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
319+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
310320 expect ( querySubmissionResult ) . to . be . ok ;
311321 const variantAnalysis = querySubmissionResult ! . variantAnalysis ! ;
312322 expect ( variantAnalysis . id ) . to . be . equal ( mockApiResponse . id ) ;
@@ -319,7 +329,7 @@ describe('Remote queries', function() {
319329 it ( 'should run a remote query that is not part of a qlpack' , async ( ) => {
320330 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
321331
322- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
332+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
323333 expect ( querySubmissionResult ) . to . be . ok ;
324334 const variantAnalysis = querySubmissionResult ! . variantAnalysis ! ;
325335 expect ( variantAnalysis . id ) . to . be . equal ( mockApiResponse . id ) ;
@@ -332,7 +342,7 @@ describe('Remote queries', function() {
332342 it ( 'should run a remote query that is nested inside a qlpack' , async ( ) => {
333343 const fileUri = getFile ( 'data-remote-qlpack-nested/subfolder/in-pack.ql' ) ;
334344
335- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
345+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
336346 expect ( querySubmissionResult ) . to . be . ok ;
337347 const variantAnalysis = querySubmissionResult ! . variantAnalysis ! ;
338348 expect ( variantAnalysis . id ) . to . be . equal ( mockApiResponse . id ) ;
@@ -345,7 +355,7 @@ describe('Remote queries', function() {
345355 it ( 'should cancel a run before uploading' , async ( ) => {
346356 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
347357
348- const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
358+ const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token , variantAnalysisManager ) ;
349359
350360 cancellationTokenSource . token . isCancellationRequested = true ;
351361
0 commit comments