1- import { commands , extensions } from "vscode" ;
2- import { CodeQLExtensionInterface } from "../../../../src/extension" ;
3-
41import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client" ;
52import { VariantAnalysisMonitor } from "../../../../src/variant-analysis/variant-analysis-monitor" ;
63import {
@@ -23,44 +20,37 @@ import {
2320 processUpdatedVariantAnalysis ,
2421} from "../../../../src/variant-analysis/variant-analysis-processor" ;
2522import { createMockVariantAnalysis } from "../../../factories/variant-analysis/shared/variant-analysis" ;
26- import { VariantAnalysisManager } from "../../../../src/variant-analysis/variant-analysis-manager " ;
27- import { testCredentialsWithStub } from "../../../factories/authentication " ;
23+ import { createMockApp } from "../../../__mocks__/appMock " ;
24+ import { createMockCommandManager } from "../../../__mocks__/commandsMock " ;
2825
2926jest . setTimeout ( 60_000 ) ;
3027
3128describe ( "Variant Analysis Monitor" , ( ) => {
32- let extension : CodeQLExtensionInterface | Record < string , never > ;
3329 let mockGetVariantAnalysis : jest . SpiedFunction <
3430 typeof ghApiClient . getVariantAnalysis
3531 > ;
3632 let variantAnalysisMonitor : VariantAnalysisMonitor ;
3733 let shouldCancelMonitor : jest . Mock < Promise < boolean > , [ number ] > ;
3834 let variantAnalysis : VariantAnalysis ;
39- let variantAnalysisManager : VariantAnalysisManager ;
40- let mockGetDownloadResult : jest . SpiedFunction <
41- typeof variantAnalysisManager . autoDownloadVariantAnalysisResult
42- > ;
4335
4436 const onVariantAnalysisChangeSpy = jest . fn ( ) ;
37+ const mockEecuteCommand = jest . fn ( ) ;
4538
4639 beforeEach ( async ( ) => {
4740 variantAnalysis = createMockVariantAnalysis ( { } ) ;
4841
4942 shouldCancelMonitor = jest . fn ( ) ;
5043
51- extension = await extensions
52- . getExtension < CodeQLExtensionInterface | Record < string , never > > (
53- "GitHub.vscode-codeql" ,
54- ) !
55- . activate ( ) ;
56- variantAnalysisMonitor = new VariantAnalysisMonitor ( shouldCancelMonitor ) ;
44+ variantAnalysisMonitor = new VariantAnalysisMonitor (
45+ createMockApp ( {
46+ commands : createMockCommandManager ( {
47+ executeCommand : mockEecuteCommand ,
48+ } ) ,
49+ } ) ,
50+ shouldCancelMonitor ,
51+ ) ;
5752 variantAnalysisMonitor . onVariantAnalysisChange ( onVariantAnalysisChangeSpy ) ;
5853
59- variantAnalysisManager = extension . variantAnalysisManager ;
60- mockGetDownloadResult = jest
61- . spyOn ( variantAnalysisManager , "autoDownloadVariantAnalysisResult" )
62- . mockResolvedValue ( undefined ) ;
63-
6454 mockGetVariantAnalysis = jest
6555 . spyOn ( ghApiClient , "getVariantAnalysis" )
6656 . mockRejectedValue ( new Error ( "Not mocked" ) ) ;
@@ -71,10 +61,7 @@ describe("Variant Analysis Monitor", () => {
7161 it ( "should return early if variant analysis should be cancelled" , async ( ) => {
7262 shouldCancelMonitor . mockResolvedValue ( true ) ;
7363
74- await variantAnalysisMonitor . monitorVariantAnalysis (
75- variantAnalysis ,
76- testCredentialsWithStub ( ) ,
77- ) ;
64+ await variantAnalysisMonitor . monitorVariantAnalysis ( variantAnalysis ) ;
7865
7966 expect ( onVariantAnalysisChangeSpy ) . not . toHaveBeenCalled ( ) ;
8067 } ) ;
@@ -88,10 +75,7 @@ describe("Variant Analysis Monitor", () => {
8875 } ) ;
8976
9077 it ( "should mark as failed and stop monitoring" , async ( ) => {
91- await variantAnalysisMonitor . monitorVariantAnalysis (
92- variantAnalysis ,
93- testCredentialsWithStub ( ) ,
94- ) ;
78+ await variantAnalysisMonitor . monitorVariantAnalysis ( variantAnalysis ) ;
9579
9680 expect ( mockGetVariantAnalysis ) . toHaveBeenCalledTimes ( 1 ) ;
9781
@@ -109,7 +93,6 @@ describe("Variant Analysis Monitor", () => {
10993 describe ( "when the variant analysis is in progress" , ( ) => {
11094 let mockApiResponse : VariantAnalysisApiResponse ;
11195 let scannedRepos : ApiVariantAnalysisScannedRepository [ ] ;
112- let succeededRepos : ApiVariantAnalysisScannedRepository [ ] ;
11396
11497 describe ( "when there are successfully scanned repos" , ( ) => {
11598 beforeEach ( async ( ) => {
@@ -124,52 +107,25 @@ describe("Variant Analysis Monitor", () => {
124107 ] ) ;
125108 mockApiResponse = createMockApiResponse ( "succeeded" , scannedRepos ) ;
126109 mockGetVariantAnalysis . mockResolvedValue ( mockApiResponse ) ;
127- succeededRepos = scannedRepos . filter (
128- ( r ) => r . analysis_status === "succeeded" ,
129- ) ;
130110 } ) ;
131111
132112 it ( "should trigger a download extension command for each repo" , async ( ) => {
133113 const succeededRepos = scannedRepos . filter (
134114 ( r ) => r . analysis_status === "succeeded" ,
135115 ) ;
136- const commandSpy = jest
137- . spyOn ( commands , "executeCommand" )
138- . mockResolvedValue ( undefined ) ;
139-
140- await variantAnalysisMonitor . monitorVariantAnalysis (
141- variantAnalysis ,
142- testCredentialsWithStub ( ) ,
143- ) ;
116+ await variantAnalysisMonitor . monitorVariantAnalysis ( variantAnalysis ) ;
144117
145- expect ( commandSpy ) . toBeCalledTimes ( succeededRepos . length ) ;
118+ expect ( mockEecuteCommand ) . toBeCalledTimes ( succeededRepos . length ) ;
146119
147120 succeededRepos . forEach ( ( succeededRepo , index ) => {
148- expect ( commandSpy ) . toHaveBeenNthCalledWith (
121+ expect ( mockEecuteCommand ) . toHaveBeenNthCalledWith (
149122 index + 1 ,
150123 "codeQL.autoDownloadVariantAnalysisResult" ,
151124 processScannedRepository ( succeededRepo ) ,
152125 processUpdatedVariantAnalysis ( variantAnalysis , mockApiResponse ) ,
153126 ) ;
154127 } ) ;
155128 } ) ;
156-
157- it ( "should download all available results" , async ( ) => {
158- await variantAnalysisMonitor . monitorVariantAnalysis (
159- variantAnalysis ,
160- testCredentialsWithStub ( ) ,
161- ) ;
162-
163- expect ( mockGetDownloadResult ) . toBeCalledTimes ( succeededRepos . length ) ;
164-
165- succeededRepos . forEach ( ( succeededRepo , index ) => {
166- expect ( mockGetDownloadResult ) . toHaveBeenNthCalledWith (
167- index + 1 ,
168- processScannedRepository ( succeededRepo ) ,
169- processUpdatedVariantAnalysis ( variantAnalysis , mockApiResponse ) ,
170- ) ;
171- } ) ;
172- } ) ;
173129 } ) ;
174130
175131 describe ( "when there are only in progress repos" , ( ) => {
@@ -182,25 +138,9 @@ describe("Variant Analysis Monitor", () => {
182138 } ) ;
183139
184140 it ( "should succeed and not download any repos via a command" , async ( ) => {
185- const commandSpy = jest
186- . spyOn ( commands , "executeCommand" )
187- . mockResolvedValue ( undefined ) ;
188-
189- await variantAnalysisMonitor . monitorVariantAnalysis (
190- variantAnalysis ,
191- testCredentialsWithStub ( ) ,
192- ) ;
141+ await variantAnalysisMonitor . monitorVariantAnalysis ( variantAnalysis ) ;
193142
194- expect ( commandSpy ) . not . toHaveBeenCalled ( ) ;
195- } ) ;
196-
197- it ( "should not try to download any repos" , async ( ) => {
198- await variantAnalysisMonitor . monitorVariantAnalysis (
199- variantAnalysis ,
200- testCredentialsWithStub ( ) ,
201- ) ;
202-
203- expect ( mockGetDownloadResult ) . not . toBeCalled ( ) ;
143+ expect ( mockEecuteCommand ) . not . toHaveBeenCalled ( ) ;
204144 } ) ;
205145 } ) ;
206146
@@ -249,17 +189,10 @@ describe("Variant Analysis Monitor", () => {
249189 } ) ;
250190
251191 it ( "should trigger a download extension command for each repo" , async ( ) => {
252- const commandSpy = jest
253- . spyOn ( commands , "executeCommand" )
254- . mockResolvedValue ( undefined ) ;
255-
256- await variantAnalysisMonitor . monitorVariantAnalysis (
257- variantAnalysis ,
258- testCredentialsWithStub ( ) ,
259- ) ;
192+ await variantAnalysisMonitor . monitorVariantAnalysis ( variantAnalysis ) ;
260193
261194 expect ( mockGetVariantAnalysis ) . toBeCalledTimes ( 4 ) ;
262- expect ( commandSpy ) . toBeCalledTimes ( 5 ) ;
195+ expect ( mockEecuteCommand ) . toBeCalledTimes ( 5 ) ;
263196 } ) ;
264197 } ) ;
265198
@@ -271,12 +204,9 @@ describe("Variant Analysis Monitor", () => {
271204 } ) ;
272205
273206 it ( "should not try to download any repos" , async ( ) => {
274- await variantAnalysisMonitor . monitorVariantAnalysis (
275- variantAnalysis ,
276- testCredentialsWithStub ( ) ,
277- ) ;
207+ await variantAnalysisMonitor . monitorVariantAnalysis ( variantAnalysis ) ;
278208
279- expect ( mockGetDownloadResult ) . not . toBeCalled ( ) ;
209+ expect ( mockEecuteCommand ) . not . toBeCalled ( ) ;
280210 } ) ;
281211 } ) ;
282212 } ) ;
0 commit comments