@@ -6,14 +6,10 @@ import {
66 workspace ,
77} from "vscode" ;
88import { CodeQLCliServer } from "../../../../src/codeql-cli/cli" ;
9- import {
10- QueryDiscovery ,
11- QueryDiscoveryResults ,
12- } from "../../../../src/queries-panel/query-discovery" ;
9+ import { QueryDiscovery } from "../../../../src/queries-panel/query-discovery" ;
1310import { createMockApp } from "../../../__mocks__/appMock" ;
1411import { mockedObject } from "../../utils/mocking.helpers" ;
1512import { basename , join , sep } from "path" ;
16- import { sleep } from "../../../../src/pure/time" ;
1713
1814describe ( "QueryDiscovery" , ( ) => {
1915 beforeEach ( ( ) => {
@@ -28,11 +24,10 @@ describe("QueryDiscovery", () => {
2824 } ) ;
2925
3026 const discovery = new QueryDiscovery ( createMockApp ( { } ) , cli ) ;
31- const results : QueryDiscoveryResults = await (
32- discovery as any
33- ) . discover ( ) ;
27+ await discovery . refresh ( ) ;
28+ const queries = discovery . queries ;
3429
35- expect ( results . queries ) . toEqual ( [ ] ) ;
30+ expect ( queries ) . toEqual ( [ ] ) ;
3631 expect ( resolveQueries ) . toHaveBeenCalledTimes ( 1 ) ;
3732 } ) ;
3833
@@ -49,22 +44,18 @@ describe("QueryDiscovery", () => {
4944 } ) ;
5045
5146 const discovery = new QueryDiscovery ( createMockApp ( { } ) , cli ) ;
52- const results : QueryDiscoveryResults = await (
53- discovery as any
54- ) . discover ( ) ;
55-
56- expect ( results . queries [ 0 ] . children . length ) . toEqual ( 3 ) ;
57- expect ( results . queries [ 0 ] . children [ 0 ] . name ) . toEqual ( "dir1" ) ;
58- expect ( results . queries [ 0 ] . children [ 0 ] . children . length ) . toEqual ( 1 ) ;
59- expect ( results . queries [ 0 ] . children [ 0 ] . children [ 0 ] . name ) . toEqual (
60- "query1.ql" ,
61- ) ;
62- expect ( results . queries [ 0 ] . children [ 1 ] . name ) . toEqual ( "dir2" ) ;
63- expect ( results . queries [ 0 ] . children [ 1 ] . children . length ) . toEqual ( 1 ) ;
64- expect ( results . queries [ 0 ] . children [ 1 ] . children [ 0 ] . name ) . toEqual (
65- "query2.ql" ,
66- ) ;
67- expect ( results . queries [ 0 ] . children [ 2 ] . name ) . toEqual ( "query3.ql" ) ;
47+ await discovery . refresh ( ) ;
48+ const queries = discovery . queries ;
49+ expect ( queries ) . toBeDefined ( ) ;
50+
51+ expect ( queries ! [ 0 ] . children . length ) . toEqual ( 3 ) ;
52+ expect ( queries ! [ 0 ] . children [ 0 ] . name ) . toEqual ( "dir1" ) ;
53+ expect ( queries ! [ 0 ] . children [ 0 ] . children . length ) . toEqual ( 1 ) ;
54+ expect ( queries ! [ 0 ] . children [ 0 ] . children [ 0 ] . name ) . toEqual ( "query1.ql" ) ;
55+ expect ( queries ! [ 0 ] . children [ 1 ] . name ) . toEqual ( "dir2" ) ;
56+ expect ( queries ! [ 0 ] . children [ 1 ] . children . length ) . toEqual ( 1 ) ;
57+ expect ( queries ! [ 0 ] . children [ 1 ] . children [ 0 ] . name ) . toEqual ( "query2.ql" ) ;
58+ expect ( queries ! [ 0 ] . children [ 2 ] . name ) . toEqual ( "query3.ql" ) ;
6859 } ) ;
6960
7061 it ( "should collapse directories containing only a single element" , async ( ) => {
@@ -79,25 +70,21 @@ describe("QueryDiscovery", () => {
7970 } ) ;
8071
8172 const discovery = new QueryDiscovery ( createMockApp ( { } ) , cli ) ;
82- const results : QueryDiscoveryResults = await (
83- discovery as any
84- ) . discover ( ) ;
85-
86- expect ( results . queries [ 0 ] . children . length ) . toEqual ( 1 ) ;
87- expect ( results . queries [ 0 ] . children [ 0 ] . name ) . toEqual ( "dir1" ) ;
88- expect ( results . queries [ 0 ] . children [ 0 ] . children . length ) . toEqual ( 2 ) ;
89- expect ( results . queries [ 0 ] . children [ 0 ] . children [ 0 ] . name ) . toEqual (
73+ await discovery . refresh ( ) ;
74+ const queries = discovery . queries ;
75+ expect ( queries ) . toBeDefined ( ) ;
76+
77+ expect ( queries ! [ 0 ] . children . length ) . toEqual ( 1 ) ;
78+ expect ( queries ! [ 0 ] . children [ 0 ] . name ) . toEqual ( "dir1" ) ;
79+ expect ( queries ! [ 0 ] . children [ 0 ] . children . length ) . toEqual ( 2 ) ;
80+ expect ( queries ! [ 0 ] . children [ 0 ] . children [ 0 ] . name ) . toEqual (
9081 "dir2 / dir3 / dir3" ,
9182 ) ;
92- expect (
93- results . queries [ 0 ] . children [ 0 ] . children [ 0 ] . children . length ,
94- ) . toEqual ( 1 ) ;
95- expect (
96- results . queries [ 0 ] . children [ 0 ] . children [ 0 ] . children [ 0 ] . name ,
97- ) . toEqual ( "query2.ql" ) ;
98- expect ( results . queries [ 0 ] . children [ 0 ] . children [ 1 ] . name ) . toEqual (
99- "query1.ql" ,
83+ expect ( queries ! [ 0 ] . children [ 0 ] . children [ 0 ] . children . length ) . toEqual ( 1 ) ;
84+ expect ( queries ! [ 0 ] . children [ 0 ] . children [ 0 ] . children [ 0 ] . name ) . toEqual (
85+ "query2.ql" ,
10086 ) ;
87+ expect ( queries ! [ 0 ] . children [ 0 ] . children [ 1 ] . name ) . toEqual ( "query1.ql" ) ;
10188 } ) ;
10289
10390 it ( "calls resolveQueries once for each workspace folder" , async ( ) => {
@@ -128,14 +115,14 @@ describe("QueryDiscovery", () => {
128115 } ) ;
129116
130117 const discovery = new QueryDiscovery ( createMockApp ( { } ) , cli ) ;
131- const results : QueryDiscoveryResults = await (
132- discovery as any
133- ) . discover ( ) ;
118+ await discovery . refresh ( ) ;
119+ const queries = discovery . queries ;
120+ expect ( queries ) . toBeDefined ( ) ;
134121
135- expect ( results . queries . length ) . toEqual ( 3 ) ;
136- expect ( results . queries [ 0 ] . children [ 0 ] . name ) . toEqual ( "query1.ql" ) ;
137- expect ( results . queries [ 1 ] . children [ 0 ] . name ) . toEqual ( "query2.ql" ) ;
138- expect ( results . queries [ 2 ] . children [ 0 ] . name ) . toEqual ( "query3.ql" ) ;
122+ expect ( queries ! . length ) . toEqual ( 3 ) ;
123+ expect ( queries ! [ 0 ] . children [ 0 ] . name ) . toEqual ( "query1.ql" ) ;
124+ expect ( queries ! [ 1 ] . children [ 0 ] . name ) . toEqual ( "query2.ql" ) ;
125+ expect ( queries ! [ 2 ] . children [ 0 ] . name ) . toEqual ( "query3.ql" ) ;
139126
140127 expect ( resolveQueries ) . toHaveBeenCalledTimes ( 3 ) ;
141128 } ) ;
@@ -176,16 +163,14 @@ describe("QueryDiscovery", () => {
176163 const onDidChangeQueriesSpy = jest . fn ( ) ;
177164 discovery . onDidChangeQueries ( onDidChangeQueriesSpy ) ;
178165
179- const results = await ( discovery as any ) . discover ( ) ;
180- ( discovery as any ) . update ( results ) ;
166+ await discovery . refresh ( ) ;
181167
182168 expect ( createFileSystemWatcherSpy ) . toHaveBeenCalledTimes ( 2 ) ;
183169 expect ( onDidChangeQueriesSpy ) . toHaveBeenCalledTimes ( 1 ) ;
184170
185171 onWatcherDidChangeEvent . fire ( workspace . workspaceFolders ! [ 0 ] . uri ) ;
186172
187- // Wait for refresh to finish
188- await sleep ( 100 ) ;
173+ await discovery . waitForCurrentRefresh ( ) ;
189174
190175 expect ( onDidChangeQueriesSpy ) . toHaveBeenCalledTimes ( 2 ) ;
191176 } ) ;
@@ -209,15 +194,13 @@ describe("QueryDiscovery", () => {
209194 const onDidChangeQueriesSpy = jest . fn ( ) ;
210195 discovery . onDidChangeQueries ( onDidChangeQueriesSpy ) ;
211196
212- const results = await ( discovery as any ) . discover ( ) ;
213- ( discovery as any ) . update ( results ) ;
197+ await discovery . refresh ( ) ;
214198
215199 expect ( onDidChangeQueriesSpy ) . toHaveBeenCalledTimes ( 1 ) ;
216200
217201 onDidChangeWorkspaceFoldersEvent . fire ( { added : [ ] , removed : [ ] } ) ;
218202
219- // Wait for refresh to finish
220- await sleep ( 100 ) ;
203+ await discovery . waitForCurrentRefresh ( ) ;
221204
222205 expect ( onDidChangeQueriesSpy ) . toHaveBeenCalledTimes ( 2 ) ;
223206 } ) ;
0 commit comments