mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
lib: test_runner#mock:timers respeced timeout_max behaviour
PR-URL: https://github.com/nodejs/node/pull/55375 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Claudio Wunder <cwunder@gnome.org>
This commit is contained in:
parent
6abd5457e1
commit
5e76c40b27
@ -38,6 +38,8 @@ const {
|
||||
},
|
||||
} = require('internal/errors');
|
||||
|
||||
const { TIMEOUT_MAX } = require('internal/timers');
|
||||
|
||||
const PriorityQueue = require('internal/priority_queue');
|
||||
const nodeTimers = require('timers');
|
||||
const nodeTimersPromises = require('timers/promises');
|
||||
@ -288,6 +290,10 @@ class MockTimers {
|
||||
}
|
||||
|
||||
#createTimer(isInterval, callback, delay, ...args) {
|
||||
if (delay > TIMEOUT_MAX) {
|
||||
delay = 1;
|
||||
}
|
||||
|
||||
const timerId = this.#currentTimer++;
|
||||
const opts = {
|
||||
__proto__: null,
|
||||
|
@ -251,6 +251,22 @@ describe('Mock Timers Test Suite', () => {
|
||||
done();
|
||||
}), timeout);
|
||||
});
|
||||
|
||||
it('should change timeout to 1ms when it is >= 2 ** 31', (t) => {
|
||||
t.mock.timers.enable({ apis: ['setTimeout'] });
|
||||
const fn = t.mock.fn();
|
||||
global.setTimeout(fn, 2 ** 31);
|
||||
t.mock.timers.tick(1);
|
||||
assert.strictEqual(fn.mock.callCount(), 1);
|
||||
});
|
||||
|
||||
it('should change the delay to one if timeout < 0', (t) => {
|
||||
t.mock.timers.enable({ apis: ['setTimeout'] });
|
||||
const fn = t.mock.fn();
|
||||
global.setTimeout(fn, -1);
|
||||
t.mock.timers.tick(1);
|
||||
assert.strictEqual(fn.mock.callCount(), 1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('clearTimeout Suite', () => {
|
||||
|
Loading…
Reference in New Issue
Block a user