@@ -16,6 +16,7 @@ import { resolveOptions, RoutesFolderOption } from '../options'
16
16
import pathe from 'pathe'
17
17
import fs from 'node:fs/promises'
18
18
import { tmpdir } from 'node:os'
19
+ import { type FSWatcher } from 'chokidar'
19
20
20
21
const FIXTURES_ROOT = pathe . resolve (
21
22
pathe . join ( tmpdir ( ) , 'vue-router-' + Date . now ( ) )
@@ -42,6 +43,7 @@ describe('RoutesFolderWatcher', () => {
42
43
await fs . mkdir ( srcDir , { recursive : true } )
43
44
44
45
const watcher = new RoutesFolderWatcher ( options )
46
+ await waitForWatcher ( watcher . watcher )
45
47
watcherList . push ( watcher )
46
48
47
49
return { watcher, options, rootDir, srcDir }
@@ -73,6 +75,22 @@ describe('RoutesFolderWatcher', () => {
73
75
} )
74
76
}
75
77
78
+ function waitForWatcher ( watcher : FSWatcher ) {
79
+ return new Promise < void > ( ( resolve , reject ) => {
80
+ const timeout = setTimeout ( ( ) => {
81
+ reject ( new Error ( 'timeout' ) )
82
+ } , TEST_TIMEOUT )
83
+ watcher . on ( 'error' , ( ...args ) => {
84
+ clearTimeout ( timeout )
85
+ reject ( ...args )
86
+ } )
87
+ watcher . on ( 'ready' , ( ...args ) => {
88
+ clearTimeout ( timeout )
89
+ resolve ( ...args )
90
+ } )
91
+ } )
92
+ }
93
+
76
94
it ( 'triggers when new pages are added' , async ( ) => {
77
95
const { watcher, srcDir } = await createWatcher ( { src : 'src/pages' } )
78
96
0 commit comments