The mock clock implementation

Implements

Constructors

  • Returns Clock

Properties

#private: any
Date: {
    UTC(year, monthIndex, date?, hours?, minutes?, seconds?, ms?): number;
    now(): number;
    parse(s): number;
    new (...args): {
        getVarDate: (() => VarDate);
        [toPrimitive](hint): string;
        [toPrimitive](hint): string;
        [toPrimitive](hint): number;
        [toPrimitive](hint): string | number;
        getDate(): number;
        getDay(): number;
        getFullYear(): number;
        getHours(): number;
        getMilliseconds(): number;
        getMinutes(): number;
        getMonth(): number;
        getSeconds(): number;
        getTime(): number;
        getTimezoneOffset(): number;
        getUTCDate(): number;
        getUTCDay(): number;
        getUTCFullYear(): number;
        getUTCHours(): number;
        getUTCMilliseconds(): number;
        getUTCMinutes(): number;
        getUTCMonth(): number;
        getUTCSeconds(): number;
        setDate(date): number;
        setFullYear(year, month?, date?): number;
        setHours(hours, min?, sec?, ms?): number;
        setMilliseconds(ms): number;
        setMinutes(min, sec?, ms?): number;
        setMonth(month, date?): number;
        setSeconds(sec, ms?): number;
        setTime(time): number;
        setUTCDate(date): number;
        setUTCFullYear(year, month?, date?): number;
        setUTCHours(hours, min?, sec?, ms?): number;
        setUTCMilliseconds(ms): number;
        setUTCMinutes(min, sec?, ms?): number;
        setUTCMonth(month, date?): number;
        setUTCSeconds(sec, ms?): number;
        toDateString(): string;
        toISOString(): string;
        toJSON(key?): string;
        toLocaleDateString(): string;
        toLocaleDateString(locales?, options?): string;
        toLocaleDateString(locales?, options?): string;
        toLocaleString(): string;
        toLocaleString(locales?, options?): string;
        toLocaleString(locales?, options?): string;
        toLocaleTimeString(): string;
        toLocaleTimeString(locales?, options?): string;
        toLocaleTimeString(locales?, options?): string;
        toString(): string;
        toTimeString(): string;
        toUTCString(): string;
        valueOf(): number;
    };
}

Type declaration

    • new (...args): {
          getVarDate: (() => VarDate);
          [toPrimitive](hint): string;
          [toPrimitive](hint): string;
          [toPrimitive](hint): number;
          [toPrimitive](hint): string | number;
          getDate(): number;
          getDay(): number;
          getFullYear(): number;
          getHours(): number;
          getMilliseconds(): number;
          getMinutes(): number;
          getMonth(): number;
          getSeconds(): number;
          getTime(): number;
          getTimezoneOffset(): number;
          getUTCDate(): number;
          getUTCDay(): number;
          getUTCFullYear(): number;
          getUTCHours(): number;
          getUTCMilliseconds(): number;
          getUTCMinutes(): number;
          getUTCMonth(): number;
          getUTCSeconds(): number;
          setDate(date): number;
          setFullYear(year, month?, date?): number;
          setHours(hours, min?, sec?, ms?): number;
          setMilliseconds(ms): number;
          setMinutes(min, sec?, ms?): number;
          setMonth(month, date?): number;
          setSeconds(sec, ms?): number;
          setTime(time): number;
          setUTCDate(date): number;
          setUTCFullYear(year, month?, date?): number;
          setUTCHours(hours, min?, sec?, ms?): number;
          setUTCMilliseconds(ms): number;
          setUTCMinutes(min, sec?, ms?): number;
          setUTCMonth(month, date?): number;
          setUTCSeconds(sec, ms?): number;
          toDateString(): string;
          toISOString(): string;
          toJSON(key?): string;
          toLocaleDateString(): string;
          toLocaleDateString(locales?, options?): string;
          toLocaleDateString(locales?, options?): string;
          toLocaleString(): string;
          toLocaleString(locales?, options?): string;
          toLocaleString(locales?, options?): string;
          toLocaleTimeString(): string;
          toLocaleTimeString(locales?, options?): string;
          toLocaleTimeString(locales?, options?): string;
          toString(): string;
          toTimeString(): string;
          toUTCString(): string;
          valueOf(): number;
      }
    • Parameters

      • Rest ...args: any[]

      Returns {
          getVarDate: (() => VarDate);
          [toPrimitive](hint): string;
          [toPrimitive](hint): string;
          [toPrimitive](hint): number;
          [toPrimitive](hint): string | number;
          getDate(): number;
          getDay(): number;
          getFullYear(): number;
          getHours(): number;
          getMilliseconds(): number;
          getMinutes(): number;
          getMonth(): number;
          getSeconds(): number;
          getTime(): number;
          getTimezoneOffset(): number;
          getUTCDate(): number;
          getUTCDay(): number;
          getUTCFullYear(): number;
          getUTCHours(): number;
          getUTCMilliseconds(): number;
          getUTCMinutes(): number;
          getUTCMonth(): number;
          getUTCSeconds(): number;
          setDate(date): number;
          setFullYear(year, month?, date?): number;
          setHours(hours, min?, sec?, ms?): number;
          setMilliseconds(ms): number;
          setMinutes(min, sec?, ms?): number;
          setMonth(month, date?): number;
          setSeconds(sec, ms?): number;
          setTime(time): number;
          setUTCDate(date): number;
          setUTCFullYear(year, month?, date?): number;
          setUTCHours(hours, min?, sec?, ms?): number;
          setUTCMilliseconds(ms): number;
          setUTCMinutes(min, sec?, ms?): number;
          setUTCMonth(month, date?): number;
          setUTCSeconds(sec, ms?): number;
          toDateString(): string;
          toISOString(): string;
          toJSON(key?): string;
          toLocaleDateString(): string;
          toLocaleDateString(locales?, options?): string;
          toLocaleDateString(locales?, options?): string;
          toLocaleString(): string;
          toLocaleString(locales?, options?): string;
          toLocaleString(locales?, options?): string;
          toLocaleTimeString(): string;
          toLocaleTimeString(locales?, options?): string;
          toLocaleTimeString(locales?, options?): string;
          toString(): string;
          toTimeString(): string;
          toUTCString(): string;
          valueOf(): number;
      }

      • getVarDate: (() => VarDate)
          • (): VarDate
          • Returns VarDate

      • [toPrimitive]:function
        • Parameters

          • hint: "default"

          Returns string

        • Parameters

          • hint: "string"

          Returns string

        • Parameters

          • hint: "number"

          Returns number

        • Parameters

          • hint: string

          Returns string | number

      • getDate:function
        • Returns number

      • getDay:function
        • Returns number

      • getFullYear:function
        • Returns number

      • getHours:function
        • Returns number

      • getMilliseconds:function
        • Returns number

      • getMinutes:function
        • Returns number

      • getMonth:function
        • Returns number

      • getSeconds:function
        • Returns number

      • getTime:function
        • Returns number

      • getTimezoneOffset:function
        • Returns number

      • getUTCDate:function
        • Returns number

      • getUTCDay:function
        • Returns number

      • getUTCFullYear:function
        • Returns number

      • getUTCHours:function
        • Returns number

      • getUTCMilliseconds:function
        • Returns number

      • getUTCMinutes:function
        • Returns number

      • getUTCMonth:function
        • Returns number

      • getUTCSeconds:function
        • Returns number

      • setDate:function
        • Parameters

          • date: number

          Returns number

      • setFullYear:function
        • Parameters

          • year: number
          • Optional month: number
          • Optional date: number

          Returns number

      • setHours:function
        • Parameters

          • hours: number
          • Optional min: number
          • Optional sec: number
          • Optional ms: number

          Returns number

      • setMilliseconds:function
        • Parameters

          • ms: number

          Returns number

      • setMinutes:function
        • Parameters

          • min: number
          • Optional sec: number
          • Optional ms: number

          Returns number

      • setMonth:function
        • Parameters

          • month: number
          • Optional date: number

          Returns number

      • setSeconds:function
        • Parameters

          • sec: number
          • Optional ms: number

          Returns number

      • setTime:function
        • Parameters

          • time: number

          Returns number

      • setUTCDate:function
        • Parameters

          • date: number

          Returns number

      • setUTCFullYear:function
        • Parameters

          • year: number
          • Optional month: number
          • Optional date: number

          Returns number

      • setUTCHours:function
        • Parameters

          • hours: number
          • Optional min: number
          • Optional sec: number
          • Optional ms: number

          Returns number

      • setUTCMilliseconds:function
        • Parameters

          • ms: number

          Returns number

      • setUTCMinutes:function
        • Parameters

          • min: number
          • Optional sec: number
          • Optional ms: number

          Returns number

      • setUTCMonth:function
        • Parameters

          • month: number
          • Optional date: number

          Returns number

      • setUTCSeconds:function
        • Parameters

          • sec: number
          • Optional ms: number

          Returns number

      • toDateString:function
        • Returns string

      • toISOString:function
        • Returns string

      • toJSON:function
        • Parameters

          • Optional key: any

          Returns string

      • toLocaleDateString:function
        • Returns string

        • Parameters

          • Optional locales: string | string[]
          • Optional options: DateTimeFormatOptions

          Returns string

        • Parameters

          • Optional locales: LocalesArgument
          • Optional options: DateTimeFormatOptions

          Returns string

      • toLocaleString:function
        • Returns string

        • Parameters

          • Optional locales: string | string[]
          • Optional options: DateTimeFormatOptions

          Returns string

        • Parameters

          • Optional locales: LocalesArgument
          • Optional options: DateTimeFormatOptions

          Returns string

      • toLocaleTimeString:function
        • Returns string

        • Parameters

          • Optional locales: string | string[]
          • Optional options: DateTimeFormatOptions

          Returns string

        • Parameters

          • Optional locales: LocalesArgument
          • Optional options: DateTimeFormatOptions

          Returns string

      • toString:function
        • Returns string

      • toTimeString:function
        • Returns string

      • toUTCString:function
        • Returns string

      • valueOf:function
        • Returns number

  • UTC:function
    • Parameters

      • year: number
      • monthIndex: number
      • Optional date: number
      • Optional hours: number
      • Optional minutes: number
      • Optional seconds: number
      • Optional ms: number

      Returns number

  • now:function
    • Returns number

  • parse:function
    • Parameters

      • s: string

      Returns number

setImmediate: SetImmediate

Schedule a function to be run the next time the clock is advanced by any ammount.

setInterval: SetInterval

Schedule a function to be run when the clock advances each multiple of n past the current point.

If multiple steps are advanced at once, for example doing c.setInterval(fn, 1) ; c.advance(1000), then it will only call the function once. This allows you to simulate clock jitter.

Only ms granularity.

setTimeout: SetTimeout

Schedule a function to be run when the clock has advanced n ms beyond the current point.

Only ms granularity.

Accessors

  • get timers(): Map<number, Timer[]>
  • Returns Map<number, Timer[]>

Methods

  • Advance the clock by n ms. Use floats for smaller increments of time.

    Parameters

    • n: number

    Returns void

  • Clear an immediate timer created by the clock. (alias for Clock#clearTimeout)

    Parameters

    Returns void

  • Clear an interval created by the clock. (alias for Clock#clearTimeout)

    Parameters

    Returns void

  • Clear a timeout created by the clock.

    Parameters

    Returns void

  • Mocks all the things in the global space.

    Returns exit function, for ease of doing t.teardown(c.enter()).

    Returns (() => void)

      • (): void
      • Returns void

  • If entered, exit the clock, restoring the global state

    Returns boolean

  • Advance the clock in steps, awaiting a Promise at each step, so that actual asynchronous events can occur, as well as timers.

    Parameters

    • n: number
    • Optional step: number

    Returns Promise<void>

  • Mock of process.hrtime(), returning [seconds, nanoseconds] on the clock.

    Parameters

    • Optional s: [number, number]

    Returns [number, number]

  • Mock of process.hrtime.bigint(), returning BigInt representation of current nanosecond time.

    Returns bigint

  • Returns the current ms time on the clock.

    Returns number

  • The promisified setImmediate, also available via promisify(clock.setImmediate)

    Parameters

    • Optional value: undefined
    • Optional options: {
          reffed?: boolean;
          signal?: AbortSignal;
      }
      • Optional reffed?: boolean
      • Optional signal?: AbortSignal

    Returns Promise<void>

  • Type Parameters

    • T = void

    Parameters

    • value: T
    • Optional options: {
          reffed?: boolean;
          signal?: AbortSignal;
      }
      • Optional reffed?: boolean
      • Optional signal?: AbortSignal

    Returns Promise<T>

  • promisified setInterval, also available via promisify(clock.setImmediate)

    Parameters

    • Optional n: number
    • Optional value: undefined
    • Optional options: {
          reffed?: boolean;
          signal?: AbortSignal;
      }
      • Optional reffed?: boolean
      • Optional signal?: AbortSignal

    Returns AsyncGenerator<void, any, unknown>

  • Type Parameters

    • T = void

    Parameters

    • Optional n: number
    • Optional value: T
    • Optional options: {
          reffed?: boolean;
          signal?: AbortSignal;
      }
      • Optional reffed?: boolean
      • Optional signal?: AbortSignal

    Returns AsyncGenerator<T, any, unknown>

  • The promisified setTimeout, also available via promisify(clock.setTimeout)

    Parameters

    • Optional n: number
    • Optional value: undefined
    • Optional options: {
          reffed?: boolean;
          signal?: AbortSignal;
      }
      • Optional reffed?: boolean
      • Optional signal?: AbortSignal

    Returns Promise<void>

  • Type Parameters

    • T = void

    Parameters

    • n: number
    • value: T
    • Optional options: {
          reffed?: boolean;
          signal?: AbortSignal;
      }
      • Optional reffed?: boolean
      • Optional signal?: AbortSignal

    Returns Promise<T>

  • Set the clock to a specific time. Will fire timers that you zoom past.

    Parameters

    • to: number

    Returns void

Generated using TypeDoc