diff --git a/graal-nodejs/lib/internal/test_runner/mock/mock_timers.js b/graal-nodejs/lib/internal/test_runner/mock/mock_timers.js index d2735a2b5e4..40956e6d2ec 100644 --- a/graal-nodejs/lib/internal/test_runner/mock/mock_timers.js +++ b/graal-nodejs/lib/internal/test_runner/mock/mock_timers.js @@ -454,6 +454,13 @@ class MockTimers { ); } + /** + * Advances the virtual time of MockTimers by the specified duration (in milliseconds). + * This method simulates the passage of time and triggers any scheduled timers that are due. + * @param {number} [time=1] - The amount of time (in milliseconds) to advance the virtual time. + * @throws {ERR_INVALID_STATE} If MockTimers are not enabled. + * @throws {ERR_INVALID_ARG_VALUE} If a negative time value is provided. + */ tick(time = 1) { if (!this.#isEnabled) { throw new ERR_INVALID_STATE( @@ -487,6 +494,12 @@ class MockTimers { } } + /** + * Enables MockTimers for the specified timers. + * @param {string[]} timers - An array of timer types to enable, e.g., ['setTimeout', 'setInterval']. + * @throws {ERR_INVALID_STATE} If MockTimers are already enabled. + * @throws {ERR_INVALID_ARG_VALUE} If an unsupported timer type is specified. + */ enable(timers = SUPPORTED_TIMERS) { if (this.#isEnabled) { throw new ERR_INVALID_STATE( @@ -512,10 +525,17 @@ class MockTimers { this.#toggleEnableTimers(true); } + /** + * An alias for `this.reset()`, allowing the disposal of the `MockTimers` instance. + */ [SymbolDispose]() { this.reset(); } + /** + * Resets MockTimers, disabling any enabled timers and clearing the execution queue. + * Does nothing if MockTimers are not enabled. + */ reset() { // Ignore if not enabled if (!this.#isEnabled) return; @@ -530,6 +550,10 @@ class MockTimers { } } + /** + * Runs all scheduled timers until there are no more pending timers. + * @throws {ERR_INVALID_STATE} If MockTimers are not enabled. + */ runAll() { if (!this.#isEnabled) { throw new ERR_INVALID_STATE(