Skip to content

Commit 6157d26

Browse files
committed
test: avoid real debounce wait in files watcher clear test
1 parent 8625b6b commit 6157d26

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import tmpdir from '../common/tmpdir.js';
44
import assert from 'node:assert';
55
import { writeFileSync } from 'node:fs';
66
import { createRequire } from 'node:module';
7-
import { setTimeout as sleep } from 'node:timers/promises';
87

98
if (common.isIBMi)
109
common.skip('IBMi does not support `fs.watch()`');
@@ -15,16 +14,26 @@ const originalSetTimeout = timers.setTimeout;
1514
const originalClearTimeout = timers.clearTimeout;
1615
const { promise, resolve } = Promise.withResolvers();
1716
let debounceTimer;
17+
let debounceTimerCallback;
1818
let debounceTimerCleared = false;
1919

2020
timers.setTimeout = function(fn, delay, ...args) {
21-
const timer = originalSetTimeout(fn, delay, ...args);
2221
if (delay === 1000) {
22+
const timer = {
23+
__proto__: null,
24+
ref() { return this; },
25+
unref() { return this; },
26+
};
2327
debounceTimer = timer;
24-
debounceTimer.ref();
28+
debounceTimerCallback = () => {
29+
if (!debounceTimerCleared) {
30+
fn(...args);
31+
}
32+
};
2533
resolve();
34+
return timer;
2635
}
27-
return timer;
36+
return originalSetTimeout(fn, delay, ...args);
2837
};
2938

3039
timers.clearTimeout = function(timer) {
@@ -51,7 +60,7 @@ try {
5160

5261
watcher.clear();
5362
assert.strictEqual(debounceTimerCleared, true);
54-
await sleep(1100);
63+
debounceTimerCallback();
5564
} finally {
5665
timers.setTimeout = originalSetTimeout;
5766
timers.clearTimeout = originalClearTimeout;

0 commit comments

Comments
 (0)