@@ -7,56 +7,71 @@ import { QueryTreeDataProvider } from "../../../../src/queries-panel/query-tree-
77import {
88 createQueryTreeFileItem ,
99 createQueryTreeFolderItem ,
10- createQueryTreeTextItem ,
1110} from "../../../../src/queries-panel/query-tree-view-item" ;
11+ import { createMockApp } from "../../../__mocks__/appMock" ;
12+ import { createMockCommandManager } from "../../../__mocks__/commandsMock" ;
1213
1314describe ( "QueryTreeDataProvider" , ( ) => {
1415 describe ( "getChildren" , ( ) => {
1516 it ( "returns empty array when discovery has not yet happened" , async ( ) => {
16- const dataProvider = new QueryTreeDataProvider ( {
17- buildQueryTree : ( ) => undefined ,
18- onDidChangeQueries : jest . fn ( ) ,
19- } ) ;
17+ const dataProvider = new QueryTreeDataProvider (
18+ {
19+ buildQueryTree : ( ) => undefined ,
20+ onDidChangeQueries : jest . fn ( ) ,
21+ } ,
22+ createMockApp ( { } ) ,
23+ ) ;
2024
2125 expect ( dataProvider . getChildren ( ) ) . toEqual ( [ ] ) ;
2226 } ) ;
2327
24- it ( "returns an explanatory message when there are no queries" , async ( ) => {
25- const dataProvider = new QueryTreeDataProvider ( {
26- buildQueryTree : ( ) => [ ] ,
27- onDidChangeQueries : jest . fn ( ) ,
28- } ) ;
28+ it ( "set 'noQueries' context value when there are no queries" , async ( ) => {
29+ const executeCommand = jest . fn ( ) ;
2930
30- expect ( dataProvider . getChildren ( ) ) . toEqual ( [
31- createQueryTreeTextItem (
32- "This workspace doesn't contain any CodeQL queries at the moment." ,
33- ) ,
34- ] ) ;
31+ const dataProvider = new QueryTreeDataProvider (
32+ {
33+ buildQueryTree : ( ) => [ ] ,
34+ onDidChangeQueries : jest . fn ( ) ,
35+ } ,
36+ createMockApp ( {
37+ commands : createMockCommandManager ( { executeCommand } ) ,
38+ } ) ,
39+ ) ;
40+
41+ expect ( dataProvider . getChildren ( ) ) . toEqual ( [ ] ) ;
42+ expect ( executeCommand ) . toBeCalledWith (
43+ "setContext" ,
44+ "codeQL.noQueries" ,
45+ true ,
46+ ) ;
3547 } ) ;
3648
3749 it ( "converts FileTreeNode to QueryTreeViewItem" , async ( ) => {
38- const dataProvider = new QueryTreeDataProvider ( {
39- buildQueryTree : ( ) => [
40- new FileTreeDirectory < string > ( "dir1" , "dir1" , env , [
41- new FileTreeDirectory < string > ( "dir1/dir2" , "dir2" , env , [
42- new FileTreeLeaf < string > (
43- "dir1/dir2/file1" ,
44- "file1" ,
45- "javascript" ,
46- ) ,
47- new FileTreeLeaf < string > (
48- "dir1/dir2/file2" ,
49- "file2" ,
50- "javascript" ,
51- ) ,
50+ const dataProvider = new QueryTreeDataProvider (
51+ {
52+ buildQueryTree : ( ) => [
53+ new FileTreeDirectory < string > ( "dir1" , "dir1" , env , [
54+ new FileTreeDirectory < string > ( "dir1/dir2" , "dir2" , env , [
55+ new FileTreeLeaf < string > (
56+ "dir1/dir2/file1" ,
57+ "file1" ,
58+ "javascript" ,
59+ ) ,
60+ new FileTreeLeaf < string > (
61+ "dir1/dir2/file2" ,
62+ "file2" ,
63+ "javascript" ,
64+ ) ,
65+ ] ) ,
5266 ] ) ,
53- ] ) ,
54- new FileTreeDirectory < string > ( "dir3" , "dir3" , env , [
55- new FileTreeLeaf < string > ( "dir3/file3" , "file3" , "javascript" ) ,
56- ] ) ,
57- ] ,
58- onDidChangeQueries : jest . fn ( ) ,
59- } ) ;
67+ new FileTreeDirectory < string > ( "dir3" , "dir3" , env , [
68+ new FileTreeLeaf < string > ( "dir3/file3" , "file3" , "javascript" ) ,
69+ ] ) ,
70+ ] ,
71+ onDidChangeQueries : jest . fn ( ) ,
72+ } ,
73+ createMockApp ( { } ) ,
74+ ) ;
6075
6176 expect ( dataProvider . getChildren ( ) ) . toEqual ( [
6277 createQueryTreeFolderItem ( "dir1" , "dir1" , [
@@ -85,7 +100,14 @@ describe("QueryTreeDataProvider", () => {
85100 onDidChangeQueries : onDidChangeQueriesEmitter . event ,
86101 } ;
87102
88- const dataProvider = new QueryTreeDataProvider ( queryDiscoverer ) ;
103+ const executeCommand = jest . fn ( ) ;
104+
105+ const dataProvider = new QueryTreeDataProvider (
106+ queryDiscoverer ,
107+ createMockApp ( {
108+ commands : createMockCommandManager ( { executeCommand } ) ,
109+ } ) ,
110+ ) ;
89111 expect ( dataProvider . getChildren ( ) . length ) . toEqual ( 1 ) ;
90112
91113 queryTree . push (
@@ -96,6 +118,11 @@ describe("QueryTreeDataProvider", () => {
96118 onDidChangeQueriesEmitter . fire ( ) ;
97119
98120 expect ( dataProvider . getChildren ( ) . length ) . toEqual ( 2 ) ;
121+ expect ( executeCommand ) . toBeCalledWith (
122+ "setContext" ,
123+ "codeQL.noQueries" ,
124+ false ,
125+ ) ;
99126 } ) ;
100127 } ) ;
101128} ) ;
0 commit comments