Skip to content

Commit 5d423c6

Browse files
test: test debounced behavior on multiple files
1 parent b220568 commit 5d423c6

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

test/parallel/test-watch-mode-files_watcher.mjs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,29 @@ describe('watch mode file watcher', () => {
7070
assert.ok(changesCount < 5);
7171
});
7272

73+
it('should debounce changes on multiple files', async () => {
74+
const files = []
75+
for (let i = 0; i < 10; i++) {
76+
const file = tmpdir.resolve(`file-debounced-${i}`);
77+
writeFileSync(file, 'written');
78+
watcher.filterFile(file);
79+
files.push(file);
80+
}
81+
82+
files.forEach((file) => writeFileSync(file, '1'));
83+
files.forEach((file) => writeFileSync(file, '2'));
84+
files.forEach((file) => writeFileSync(file, '3'));
85+
files.forEach((file) => writeFileSync(file, '4'));
86+
87+
await setTimeout(200); // debounce * 2
88+
files.forEach((file) => writeFileSync(file, '5'));
89+
const changed = once(watcher, 'changed');
90+
files.forEach((file) => writeFileSync(file, 'after'));
91+
await changed;
92+
// Unfortunately testing that changesCount === 2 is flaky
93+
assert.ok(changesCount < 5);
94+
});
95+
7396
it('should ignore files in watched directory if they are not filtered',
7497
{ skip: !supportsRecursiveWatching }, async () => {
7598
watcher.on('changed', common.mustNotCall());

0 commit comments

Comments
 (0)