Skip to content

Commit

Permalink
test_runner: add jsdocs to MockTimers
Browse files Browse the repository at this point in the history
Signed-off-by: Erick Wendel <[email protected]>
PR-URL: nodejs#49476
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
  • Loading branch information
ErickWendel authored and alexfernandez committed Nov 1, 2023
1 parent 81fe162 commit 6a9c556
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions lib/internal/test_runner/mock/mock_timers.js
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,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(
Expand Down Expand Up @@ -488,6 +495,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(
Expand All @@ -513,10 +526,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;
Expand All @@ -531,6 +551,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(
Expand Down

0 comments on commit 6a9c556

Please sign in to comment.