11import { assert , expect } from 'chai' ;
22import * as path from 'path' ;
33import * as sinon from 'sinon' ;
4- import { CancellationToken , extensions , QuickPickItem , Uri , window } from 'vscode' ;
4+ import { CancellationTokenSource , extensions , QuickPickItem , Uri , window } from 'vscode' ;
55import * as fs from 'fs-extra' ;
66import * as os from 'os' ;
77import * as yaml from 'js-yaml' ;
@@ -32,7 +32,7 @@ describe('Remote queries', function() {
3232
3333 let cli : CodeQLCliServer ;
3434 let credentials : Credentials = { } as unknown as Credentials ;
35- let token : CancellationToken ;
35+ let cancellationTokenSource : CancellationTokenSource ;
3636 let progress : sinon . SinonSpy ;
3737 let showQuickPickSpy : sinon . SinonStub ;
3838 let getRepositoryFromNwoStub : sinon . SinonStub ;
@@ -55,9 +55,15 @@ describe('Remote queries', function() {
5555 this . skip ( ) ;
5656 }
5757 credentials = { } as unknown as Credentials ;
58- token = {
59- isCancellationRequested : false
60- } as unknown as CancellationToken ;
58+
59+ cancellationTokenSource = {
60+ token : {
61+ isCancellationRequested : false ,
62+ onCancellationRequested : sandbox . stub ( )
63+ } ,
64+ cancel : sandbox . stub ( ) ,
65+ dispose : sandbox . stub ( )
66+ } ;
6167
6268 progress = sandbox . spy ( ) ;
6369 // Should not have asked for a language
@@ -88,7 +94,7 @@ describe('Remote queries', function() {
8894 it ( 'should run a remote query that is part of a qlpack' , async ( ) => {
8995 const fileUri = getFile ( 'data-remote-qlpack/in-pack.ql' ) ;
9096
91- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
97+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
9298 expect ( querySubmissionResult ) . to . be . ok ;
9399 const queryPackRootDir = querySubmissionResult ! . queryDirPath ! ;
94100 printDirectoryContents ( queryPackRootDir ) ;
@@ -149,7 +155,7 @@ describe('Remote queries', function() {
149155 it ( 'should run a remote query that is not part of a qlpack' , async ( ) => {
150156 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
151157
152- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
158+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
153159 expect ( querySubmissionResult ) . to . be . ok ;
154160 const queryPackRootDir = querySubmissionResult ! . queryDirPath ! ;
155161
@@ -212,7 +218,7 @@ describe('Remote queries', function() {
212218 it ( 'should run a remote query that is nested inside a qlpack' , async ( ) => {
213219 const fileUri = getFile ( 'data-remote-qlpack-nested/subfolder/in-pack.ql' ) ;
214220
215- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
221+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
216222 expect ( querySubmissionResult ) . to . be . ok ;
217223 const queryPackRootDir = querySubmissionResult ! . queryDirPath ! ;
218224
@@ -274,9 +280,9 @@ describe('Remote queries', function() {
274280 it ( 'should cancel a run before uploading' , async ( ) => {
275281 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
276282
277- const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
283+ const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
278284
279- token . isCancellationRequested = true ;
285+ cancellationTokenSource . token . isCancellationRequested = true ;
280286
281287 try {
282288 await promise ;
@@ -300,7 +306,7 @@ describe('Remote queries', function() {
300306 it ( 'should run a variant analysis that is part of a qlpack' , async ( ) => {
301307 const fileUri = getFile ( 'data-remote-qlpack/in-pack.ql' ) ;
302308
303- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
309+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
304310 expect ( querySubmissionResult ) . to . be . ok ;
305311 const variantAnalysis = querySubmissionResult ! . variantAnalysis ! ;
306312 expect ( variantAnalysis . id ) . to . be . equal ( mockApiResponse . id ) ;
@@ -313,7 +319,7 @@ describe('Remote queries', function() {
313319 it ( 'should run a remote query that is not part of a qlpack' , async ( ) => {
314320 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
315321
316- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
322+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
317323 expect ( querySubmissionResult ) . to . be . ok ;
318324 const variantAnalysis = querySubmissionResult ! . variantAnalysis ! ;
319325 expect ( variantAnalysis . id ) . to . be . equal ( mockApiResponse . id ) ;
@@ -326,7 +332,7 @@ describe('Remote queries', function() {
326332 it ( 'should run a remote query that is nested inside a qlpack' , async ( ) => {
327333 const fileUri = getFile ( 'data-remote-qlpack-nested/subfolder/in-pack.ql' ) ;
328334
329- const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
335+ const querySubmissionResult = await runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
330336 expect ( querySubmissionResult ) . to . be . ok ;
331337 const variantAnalysis = querySubmissionResult ! . variantAnalysis ! ;
332338 expect ( variantAnalysis . id ) . to . be . equal ( mockApiResponse . id ) ;
@@ -339,9 +345,9 @@ describe('Remote queries', function() {
339345 it ( 'should cancel a run before uploading' , async ( ) => {
340346 const fileUri = getFile ( 'data-remote-no-qlpack/in-pack.ql' ) ;
341347
342- const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , token ) ;
348+ const promise = runRemoteQuery ( cli , credentials , fileUri , true , progress , cancellationTokenSource . token ) ;
343349
344- token . isCancellationRequested = true ;
350+ cancellationTokenSource . token . isCancellationRequested = true ;
345351
346352 try {
347353 await promise ;
0 commit comments