@@ -4,11 +4,8 @@ import {
44} from "../../../../src/data-extensions-editor/external-api-usage-query" ;
55import { createMockLogger } from "../../../__mocks__/loggerMock" ;
66import { DatabaseKind } from "../../../../src/databases/local-databases" ;
7- import { file } from "tmp-promise" ;
7+ import { dirSync , file } from "tmp-promise" ;
88import { QueryResultType } from "../../../../src/query-server/new-messages" ;
9- import { readdir , readFile } from "fs-extra" ;
10- import { load } from "js-yaml" ;
11- import { dirname , join } from "path" ;
129import { fetchExternalApiQueries } from "../../../../src/data-extensions-editor/queries" ;
1310import * as log from "../../../../src/common/logging/notifications" ;
1411import { RedactableError } from "../../../../src/common/errors" ;
@@ -18,7 +15,11 @@ import { Query } from "../../../../src/data-extensions-editor/queries/query";
1815import { mockedUri } from "../../utils/mocking.helpers" ;
1916
2017describe ( "runQuery" , ( ) => {
21- const cases = Object . keys ( fetchExternalApiQueries ) . flatMap ( ( lang ) => {
18+ const languages = Object . keys ( fetchExternalApiQueries ) ;
19+
20+ const cases = languages . flatMap ( ( lang ) => {
21+ const queryDir = dirSync ( { unsafeCleanup : true } ) . name ;
22+
2223 const query = fetchExternalApiQueries [ lang as QueryLanguage ] ;
2324 if ( ! query ) {
2425 return [ ] ;
@@ -30,12 +31,13 @@ describe("runQuery", () => {
3031 return Array . from ( keys ) . map ( ( name ) => ( {
3132 language : lang as QueryLanguage ,
3233 queryName : name as keyof Omit < Query , "dependencies" > ,
34+ queryDir,
3335 } ) ) ;
3436 } ) ;
3537
3638 test . each ( cases ) (
3739 "should run $queryName for $language" ,
38- async ( { language, queryName } ) => {
40+ async ( { language, queryName, queryDir } ) => {
3941 const logPath = ( await file ( ) ) . path ;
4042
4143 const query = fetchExternalApiQueries [ language ] ;
@@ -70,6 +72,7 @@ describe("runQuery", () => {
7072 language,
7173 } ,
7274 queryStorageDir : "/tmp/queries" ,
75+ queryDir,
7376 progress : jest . fn ( ) ,
7477 token : {
7578 isCancellationRequested : false ,
@@ -86,7 +89,7 @@ describe("runQuery", () => {
8689 expect ( options . queryRunner . createQueryRun ) . toHaveBeenCalledWith (
8790 "/a/b/c/src.zip" ,
8891 {
89- queryPath : expect . stringMatching ( / F e t c h E x t e r n a l A p i s \. q l / ) ,
92+ queryPath : expect . stringMatching ( / F e t c h E x t e r n a l A p i s \S * \ .q l / ) ,
9093 quickEvalPosition : undefined ,
9194 quickEvalCountOnly : false ,
9295 } ,
@@ -97,44 +100,6 @@ describe("runQuery", () => {
97100 undefined ,
98101 undefined ,
99102 ) ;
100-
101- const queryPath =
102- options . queryRunner . createQueryRun . mock . calls [ 0 ] [ 1 ] . queryPath ;
103- const queryDirectory = dirname ( queryPath ) ;
104-
105- const queryFiles = await readdir ( queryDirectory ) ;
106- expect ( queryFiles . sort ( ) ) . toEqual (
107- [
108- "codeql-pack.yml" ,
109- "FetchExternalApis.ql" ,
110- "AutomodelVsCode.qll" ,
111- ] . sort ( ) ,
112- ) ;
113-
114- const suiteFileContents = await readFile (
115- join ( queryDirectory , "codeql-pack.yml" ) ,
116- "utf8" ,
117- ) ;
118- const suiteYaml = load ( suiteFileContents ) ;
119- expect ( suiteYaml ) . toEqual ( {
120- name : "codeql/external-api-usage" ,
121- version : "0.0.0" ,
122- dependencies : {
123- [ `codeql/${ language } -all` ] : "*" ,
124- } ,
125- } ) ;
126-
127- expect (
128- await readFile ( join ( queryDirectory , "FetchExternalApis.ql" ) , "utf8" ) ,
129- ) . toEqual ( query [ queryName ] ) ;
130-
131- for ( const [ filename , contents ] of Object . entries (
132- query . dependencies ?? { } ,
133- ) ) {
134- expect ( await readFile ( join ( queryDirectory , filename ) , "utf8" ) ) . toEqual (
135- contents ,
136- ) ;
137- }
138103 } ,
139104 ) ;
140105} ) ;
0 commit comments