@@ -31,25 +31,31 @@ tmpdir.refresh();
3131
3232 let seenFile = false ;
3333 let seenIgnored = false ;
34+ let interval ;
35+
3436 watcher . on ( 'change' , common . mustCallAtLeast ( ( event , filename ) => {
3537 if ( filename === 'file.txt' ) {
3638 seenFile = true ;
3739 }
3840 if ( filename === 'file.log' ) {
3941 seenIgnored = true ;
4042 }
41- // Close watcher after we've seen the non-ignored file
4243 if ( seenFile ) {
44+ clearInterval ( interval ) ;
45+ interval = null ;
4346 watcher . close ( ) ;
4447 }
4548 } , 1 ) ) ;
4649
47- setTimeout ( ( ) => {
48- fs . writeFileSync ( ignoredFile , 'ignored' ) ;
49- fs . writeFileSync ( testFile , 'content' ) ;
50- } , common . platformTimeout ( 200 ) ) ;
50+ process . nextTick ( common . mustCall ( ( ) => {
51+ interval = setInterval ( ( ) => {
52+ fs . writeFileSync ( ignoredFile , 'ignored' ) ;
53+ fs . writeFileSync ( testFile , 'content-' + Date . now ( ) ) ;
54+ } , 100 ) ;
55+ } ) ) ;
5156
5257 process . on ( 'exit' , ( ) => {
58+ assert . strictEqual ( interval , null ) ;
5359 assert . strictEqual ( seenFile , true ) ;
5460 assert . strictEqual ( seenIgnored , false ) ;
5561 } ) ;
@@ -70,6 +76,8 @@ tmpdir.refresh();
7076
7177 let seenFile = false ;
7278 let seenIgnored = false ;
79+ let interval ;
80+
7381 watcher . on ( 'change' , common . mustCallAtLeast ( ( event , filename ) => {
7482 if ( filename === 'keep.txt' ) {
7583 seenFile = true ;
@@ -78,16 +86,21 @@ tmpdir.refresh();
7886 seenIgnored = true ;
7987 }
8088 if ( seenFile ) {
89+ clearInterval ( interval ) ;
90+ interval = null ;
8191 watcher . close ( ) ;
8292 }
8393 } , 1 ) ) ;
8494
85- setTimeout ( ( ) => {
86- fs . writeFileSync ( ignoredFile , 'ignored' ) ;
87- fs . writeFileSync ( testFile , 'content' ) ;
88- } , common . platformTimeout ( 200 ) ) ;
95+ process . nextTick ( common . mustCall ( ( ) => {
96+ interval = setInterval ( ( ) => {
97+ fs . writeFileSync ( ignoredFile , 'ignored' ) ;
98+ fs . writeFileSync ( testFile , 'content-' + Date . now ( ) ) ;
99+ } , 100 ) ;
100+ } ) ) ;
89101
90102 process . on ( 'exit' , ( ) => {
103+ assert . strictEqual ( interval , null ) ;
91104 assert . strictEqual ( seenFile , true ) ;
92105 assert . strictEqual ( seenIgnored , false ) ;
93106 } ) ;
@@ -108,6 +121,8 @@ tmpdir.refresh();
108121
109122 let seenFile = false ;
110123 let seenIgnored = false ;
124+ let interval ;
125+
111126 watcher . on ( 'change' , common . mustCallAtLeast ( ( event , filename ) => {
112127 if ( filename === 'visible.txt' ) {
113128 seenFile = true ;
@@ -116,16 +131,21 @@ tmpdir.refresh();
116131 seenIgnored = true ;
117132 }
118133 if ( seenFile ) {
134+ clearInterval ( interval ) ;
135+ interval = null ;
119136 watcher . close ( ) ;
120137 }
121138 } , 1 ) ) ;
122139
123- setTimeout ( ( ) => {
124- fs . writeFileSync ( ignoredFile , 'ignored' ) ;
125- fs . writeFileSync ( testFile , 'content' ) ;
126- } , common . platformTimeout ( 200 ) ) ;
140+ process . nextTick ( common . mustCall ( ( ) => {
141+ interval = setInterval ( ( ) => {
142+ fs . writeFileSync ( ignoredFile , 'ignored' ) ;
143+ fs . writeFileSync ( testFile , 'content-' + Date . now ( ) ) ;
144+ } , 100 ) ;
145+ } ) ) ;
127146
128147 process . on ( 'exit' , ( ) => {
148+ assert . strictEqual ( interval , null ) ;
129149 assert . strictEqual ( seenFile , true ) ;
130150 assert . strictEqual ( seenIgnored , false ) ;
131151 } ) ;
@@ -154,6 +174,8 @@ tmpdir.refresh();
154174 let seenLog = false ;
155175 let seenTmp = false ;
156176 let seenHidden = false ;
177+ let interval ;
178+
157179 watcher . on ( 'change' , common . mustCallAtLeast ( ( event , filename ) => {
158180 if ( filename === 'keep.txt' ) {
159181 seenFile = true ;
@@ -163,18 +185,23 @@ tmpdir.refresh();
163185 if ( filename === '.secret' ) seenHidden = true ;
164186
165187 if ( seenFile ) {
188+ clearInterval ( interval ) ;
189+ interval = null ;
166190 watcher . close ( ) ;
167191 }
168192 } , 1 ) ) ;
169193
170- setTimeout ( ( ) => {
171- fs . writeFileSync ( ignoredLog , 'ignored' ) ;
172- fs . writeFileSync ( ignoredTmp , 'ignored' ) ;
173- fs . writeFileSync ( ignoredHidden , 'ignored' ) ;
174- fs . writeFileSync ( testFile , 'content' ) ;
175- } , common . platformTimeout ( 200 ) ) ;
194+ process . nextTick ( common . mustCall ( ( ) => {
195+ interval = setInterval ( ( ) => {
196+ fs . writeFileSync ( ignoredLog , 'ignored' ) ;
197+ fs . writeFileSync ( ignoredTmp , 'ignored' ) ;
198+ fs . writeFileSync ( ignoredHidden , 'ignored' ) ;
199+ fs . writeFileSync ( testFile , 'content-' + Date . now ( ) ) ;
200+ } , 100 ) ;
201+ } ) ) ;
176202
177203 process . on ( 'exit' , ( ) => {
204+ assert . strictEqual ( interval , null ) ;
178205 assert . strictEqual ( seenFile , true ) ;
179206 assert . strictEqual ( seenLog , false ) ;
180207 assert . strictEqual ( seenTmp , false ) ;
0 commit comments