@@ -6,33 +6,19 @@ import os from "node:os";
66import path from "node:path" ;
77import { setTimeout } from "node:timers/promises" ;
88import { fetch } from "undici" ;
9- import { afterAll , beforeAll , describe , expect , test } from "vitest" ;
10- import {
11- runWranglerDev ,
12- wranglerEntryPath ,
13- } from "../../shared/src/run-wrangler-long-lived" ;
9+ import { afterAll , beforeAll , describe , expect , test , vi } from "vitest" ;
10+ import { unstable_startWorker } from "wrangler" ;
11+ import { wranglerEntryPath } from "../../shared/src/run-wrangler-long-lived" ;
1412
1513async function getTmpDir ( ) {
1614 return fs . mkdtemp ( path . join ( os . tmpdir ( ) , "wrangler-modules-" ) ) ;
1715}
1816
19- type WranglerDev = Awaited < ReturnType < typeof runWranglerDev > > ;
17+ type WranglerDev = Awaited < ReturnType < typeof unstable_startWorker > > ;
2018function get ( worker : WranglerDev , pathname : string ) {
21- const url = `http://${ worker . ip } : ${ worker . port } ${ pathname } ` ;
19+ const url = `http://example.com ${ pathname } ` ;
2220 // Disable Miniflare's pretty error page, so we can parse errors as JSON
23- return fetch ( url , { headers : { "MF-Disable-Pretty-Error" : "true" } } ) ;
24- }
25-
26- async function retry < T > ( closure : ( ) => Promise < T > , max = 30 ) : Promise < T > {
27- for ( let attempt = 1 ; attempt <= max ; attempt ++ ) {
28- try {
29- return await closure ( ) ;
30- } catch ( e ) {
31- if ( attempt === max ) throw e ;
32- }
33- await setTimeout ( 1_000 ) ;
34- }
35- assert . fail ( "Unreachable" ) ;
21+ return worker . fetch ( url , { headers : { "MF-Disable-Pretty-Error" : "true" } } ) ;
3622}
3723
3824describe ( "find_additional_modules dev" , ( ) => {
@@ -52,10 +38,12 @@ describe("find_additional_modules dev", () => {
5238 path . join ( tmpDir , "wrangler.toml" )
5339 ) ;
5440
55- worker = await runWranglerDev ( tmpDir , [ "--port=0" , "--inspector-port=0" ] ) ;
41+ worker = await unstable_startWorker ( {
42+ config : path . join ( tmpDir , "wrangler.toml" ) ,
43+ } ) ;
5644 } ) ;
5745 afterAll ( async ( ) => {
58- await worker . stop ( ) ;
46+ await worker . dispose ( ) ;
5947 try {
6048 await fs . rm ( tmpDir , { recursive : true , force : true } ) ;
6149 } catch ( e ) {
@@ -102,28 +90,27 @@ describe("find_additional_modules dev", () => {
10290 path . join ( srcDir , "dynamic.js" ) ,
10391 'export default "new dynamic";'
10492 ) ;
105- await retry ( async ( ) => {
93+ await vi . waitFor ( async ( ) => {
10694 const res = await get ( worker , "/dynamic" ) ;
10795 assert . strictEqual ( await res . text ( ) , "new dynamic" ) ;
10896 } ) ;
10997
11098 // Delete dynamically imported file
11199 await fs . rm ( path . join ( srcDir , "lang" , "en.js" ) ) ;
112- const res = await retry ( async ( ) => {
113- const res = await get ( worker , "/lang/en" ) ;
114- assert . strictEqual ( res . status , 500 ) ;
115- return res ;
100+
101+ await vi . waitFor ( async ( ) => {
102+ await expect ( get ( worker , "/lang/en" ) ) . rejects . toThrowError (
103+ 'No such module "lang/en.js".'
104+ ) ;
116105 } ) ;
117- const error = ( await res . json ( ) ) as { message ?: string } ;
118- expect ( error . message ) . toBe ( 'No such module "lang/en.js".' ) ;
119106
120107 // Create new dynamically imported file in new directory
121108 await fs . mkdir ( path . join ( srcDir , "lang" , "en" ) ) ;
122109 await fs . writeFile (
123110 path . join ( srcDir , "lang" , "en" , "us.js" ) ,
124111 'export default { hello: "hey" };'
125112 ) ;
126- await retry ( async ( ) => {
113+ await vi . waitFor ( async ( ) => {
127114 const res = await get ( worker , "/lang/en/us" ) ;
128115 assert . strictEqual ( await res . text ( ) , "hey" ) ;
129116 } ) ;
@@ -133,7 +120,7 @@ describe("find_additional_modules dev", () => {
133120 path . join ( srcDir , "lang" , "en" , "us.js" ) ,
134121 'export default { hello: "bye" };'
135122 ) ;
136- await retry ( async ( ) => {
123+ await vi . waitFor ( async ( ) => {
137124 const res = await get ( worker , "/lang/en/us" ) ;
138125 assert . strictEqual ( await res . text ( ) , "bye" ) ;
139126 } ) ;
0 commit comments