@@ -296,3 +296,99 @@ Deno.test({
296296 sanitizeOps : false ,
297297 sanitizeResources : false ,
298298} ) ;
299+
300+ Deno . test ( {
301+ name : "vite build - build ID uses GIT_REVISION when set" ,
302+ fn : async ( ) => {
303+ const testRevision = "test-commit-hash-123" ;
304+ await using res = await buildVite ( DEMO_DIR , { GIT_REVISION : testRevision } ) ;
305+
306+ await withChildProcessServer (
307+ {
308+ cwd : res . tmp ,
309+ args : [ "serve" , "-A" , "--port" , "0" , "_fresh/server.js" ] ,
310+ } ,
311+ async ( address ) => {
312+ await withBrowser ( async ( page ) => {
313+ await page . goto ( `${ address } /tests/build_id` , {
314+ waitUntil : "networkidle2" ,
315+ } ) ;
316+
317+ await page . locator ( ".ready" ) . wait ( ) ;
318+ const buildId = await page . locator ( "#build-id" ) . evaluate ( ( el ) =>
319+ // deno-lint-ignore no-explicit-any
320+ ( el as any ) . textContent ?. trim ( )
321+ ) ;
322+ expect ( buildId ) . toEqual ( testRevision ) ;
323+ } ) ;
324+ } ,
325+ ) ;
326+ } ,
327+ sanitizeOps : false ,
328+ sanitizeResources : false ,
329+ } ) ;
330+
331+ Deno . test ( {
332+ name :
333+ "vite build - build ID generates unique value when GIT_REVISION not set" ,
334+ fn : async ( ) => {
335+ await using res = await buildVite ( DEMO_DIR ) ;
336+
337+ await withChildProcessServer (
338+ {
339+ cwd : res . tmp ,
340+ args : [ "serve" , "-A" , "--port" , "0" , "_fresh/server.js" ] ,
341+ } ,
342+ async ( address ) => {
343+ await withBrowser ( async ( page ) => {
344+ await page . goto ( `${ address } /tests/build_id` , {
345+ waitUntil : "networkidle2" ,
346+ } ) ;
347+
348+ await page . locator ( ".ready" ) . wait ( ) ;
349+ const buildId = await page . locator ( "#build-id" ) . evaluate ( ( el ) =>
350+ // deno-lint-ignore no-explicit-any
351+ ( el as any ) . textContent ?. trim ( )
352+ ) ;
353+
354+ // Should be a non-empty string
355+ expect ( buildId ) . toBeTruthy ( ) ;
356+ expect ( typeof buildId ) . toEqual ( "string" ) ;
357+ expect ( buildId ! . length ) . toBeGreaterThan ( 0 ) ;
358+ } ) ;
359+ } ,
360+ ) ;
361+ } ,
362+ sanitizeOps : false ,
363+ sanitizeResources : false ,
364+ } ) ;
365+
366+ Deno . test ( {
367+ name : "vite build - build ID handles empty GIT_REVISION" ,
368+ fn : async ( ) => {
369+ await using res = await buildVite ( DEMO_DIR , { GIT_REVISION : "" } ) ;
370+
371+ await withChildProcessServer (
372+ {
373+ cwd : res . tmp ,
374+ args : [ "serve" , "-A" , "--port" , "0" , "_fresh/server.js" ] ,
375+ } ,
376+ async ( address ) => {
377+ await withBrowser ( async ( page ) => {
378+ await page . goto ( `${ address } /tests/build_id` , {
379+ waitUntil : "networkidle2" ,
380+ } ) ;
381+
382+ await page . locator ( ".ready" ) . wait ( ) ;
383+ const buildId = await page . locator ( "#build-id" ) . evaluate ( ( el ) =>
384+ // deno-lint-ignore no-explicit-any
385+ ( el as any ) . textContent ?. trim ( )
386+ ) ;
387+ expect ( buildId ) . toEqual ( "" ) ;
388+ } ) ;
389+ } ,
390+ ) ;
391+ } ,
392+ sanitizeOps : false ,
393+ sanitizeResources : false ,
394+ } ) ;
0 commit comments