@@ -12,8 +12,6 @@ if (common.isIBMi)
12
12
if ( common . isAIX )
13
13
common . skip ( 'folder watch capability is limited in AIX.' ) ;
14
14
15
- tmpdir . refresh ( ) ;
16
-
17
15
const { FilesWatcher } = watcher ;
18
16
19
17
tmpdir . refresh ( ) ;
@@ -32,15 +30,18 @@ Object.entries(fixtureContent)
32
30
. forEach ( ( [ file , content ] ) => writeFileSync ( fixturePaths [ file ] , content ) ) ;
33
31
34
32
describe ( 'watch file with shared dependency' , ( ) => {
35
- it ( 'should not remove shared dependencies when unfiltering an owner' , ( ) => {
33
+ it ( 'should not remove shared dependencies when unfiltering an owner' , ( t , done ) => {
36
34
const controller = new AbortController ( ) ;
37
- const watcher = new FilesWatcher ( { signal : controller . signal , debounce : 200 } ) ;
35
+ const watcher = new FilesWatcher ( { signal : controller . signal } ) ;
38
36
39
37
watcher . on ( 'changed' , ( { owners } ) => {
40
- assert . strictEqual ( owners . size , 2 ) ;
38
+ if ( owners . size !== 2 ) return ;
39
+
40
+ // If this code is never reached the test times out.
41
41
assert . ok ( owners . has ( fixturePaths [ 'test.js' ] ) ) ;
42
42
assert . ok ( owners . has ( fixturePaths [ 'test-2.js' ] ) ) ;
43
43
controller . abort ( ) ;
44
+ done ( ) ;
44
45
} ) ;
45
46
watcher . filterFile ( fixturePaths [ 'test.js' ] ) ;
46
47
watcher . filterFile ( fixturePaths [ 'test-2.js' ] ) ;
@@ -49,6 +50,20 @@ describe('watch file with shared dependency', () => {
49
50
watcher . unfilterFilesOwnedBy ( [ fixturePaths [ 'test.js' ] ] ) ;
50
51
watcher . filterFile ( fixturePaths [ 'test.js' ] ) ;
51
52
watcher . filterFile ( fixturePaths [ 'dependency.js' ] , fixturePaths [ 'test.js' ] ) ;
52
- writeFileSync ( fixturePaths [ 'dependency.js' ] , 'module.exports = { modified: true };' ) ;
53
+
54
+ if ( common . isMacOS ) {
55
+ // Do the write with a delay to ensure that the OS is ready to notify us.
56
+ setTimeout ( ( ) => {
57
+ writeFileSync (
58
+ fixturePaths [ 'dependency.js' ] ,
59
+ 'module.exports = { modified: true };'
60
+ ) ;
61
+ } , common . platformTimeout ( 200 ) ) ;
62
+ } else {
63
+ writeFileSync (
64
+ fixturePaths [ 'dependency.js' ] ,
65
+ 'module.exports = { modified: true };'
66
+ ) ;
67
+ }
53
68
} ) ;
54
69
} ) ;
0 commit comments