11import { promises as fs } from "node:fs" ;
22import { createServer , type UserConfig } from "vite" ;
33import { afterEach , describe , expect , it , vi , type TestContext } from "vitest" ;
4- import codegen , { type Options } from "../../src/index" ;
4+ import codegen , { type Options , type SkipContext } from "../../src/index" ;
55
66const codegenGenerateMock = vi . hoisted ( ( ) => vi . fn ( ) ) ;
77vi . mock ( "@graphql-codegen/cli" , async ( importOriginal ) => {
@@ -108,12 +108,13 @@ describe("skip", () => {
108108 skip : false ,
109109 } ,
110110 {
111- describe : "when skip returns false" ,
112- skip : ( ) => false ,
111+ describe : "when skip returns false by matching start trigger " ,
112+ skip : ( { trigger } : SkipContext ) => trigger !== "start" ,
113113 } ,
114114 {
115- describe : "when skip resolves false" ,
116- skip : ( ) => Promise . resolve ( false ) ,
115+ describe : "when skip resolves false by matching start trigger" ,
116+ skip : ( { trigger } : SkipContext ) =>
117+ Promise . resolve ( trigger !== "start" ) ,
117118 } ,
118119 ] ) ( "it should run codegen $describe" , async ( { skip } , context ) => {
119120 await startServer ( { skip } , context as TestContextWithServer ) ;
@@ -137,12 +138,13 @@ describe("skip", () => {
137138 skip : true ,
138139 } ,
139140 {
140- describe : "when skip returns true" ,
141- skip : ( ) => true ,
141+ describe : "when skip returns true by matching start trigger " ,
142+ skip : ( { trigger } : SkipContext ) => trigger === "start" ,
142143 } ,
143144 {
144- describe : "when skip resolves true" ,
145- skip : ( ) => Promise . resolve ( true ) ,
145+ describe : "when skip resolves true by matching start trigger" ,
146+ skip : ( { trigger } : SkipContext ) =>
147+ Promise . resolve ( trigger === "start" ) ,
146148 } ,
147149 ] ) ( "it should skip codegen $describe" , async ( { skip } , context ) => {
148150 await startServer ( { skip } , context as TestContextWithServer ) ;
@@ -162,12 +164,18 @@ describe("skip", () => {
162164 skip : false ,
163165 } ,
164166 {
165- describe : "when skip returns false" ,
166- skip : ( ) => false ,
167+ describe : "when skip returns false by matching watch trigger " ,
168+ skip : ( { trigger } : SkipContext ) => trigger !== "watch" ,
167169 } ,
168170 {
169- describe : "when skip resolves false" ,
170- skip : ( ) => Promise . resolve ( false ) ,
171+ describe : "when skip resolves false by matching watch trigger" ,
172+ skip : ( { trigger } : SkipContext ) =>
173+ Promise . resolve ( trigger !== "watch" ) ,
174+ } ,
175+ {
176+ describe : "when skip resolves false by matching filePath" ,
177+ skip : async ( { filePath } : SkipContext ) =>
178+ filePath !== ( await fs . realpath ( QUERY_FILE ) ) ,
171179 } ,
172180 ] ) ( "it should run codegen $describe" , async ( { skip } , context ) => {
173181 await startServer (
@@ -197,12 +205,18 @@ describe("skip", () => {
197205 skip : true ,
198206 } ,
199207 {
200- describe : "when skip returns true" ,
201- skip : ( ) => true ,
208+ describe : "when skip returns true by matching watch trigger" ,
209+ skip : ( { trigger } : SkipContext ) => trigger === "watch" ,
210+ } ,
211+ {
212+ describe : "when skip resolves true by matching watch trigger" ,
213+ skip : ( { trigger } : SkipContext ) =>
214+ Promise . resolve ( trigger === "watch" ) ,
202215 } ,
203216 {
204- describe : "when skip resolves true" ,
205- skip : ( ) => Promise . resolve ( true ) ,
217+ describe : "when skip resolves true by matching filePath" ,
218+ skip : async ( { filePath } : SkipContext ) =>
219+ filePath === ( await fs . realpath ( QUERY_FILE ) ) ,
206220 } ,
207221 ] ) ( "it should skip codegen $describe" , async ( { skip } , context ) => {
208222 await startServer (
0 commit comments