# All files / src/test-utils timers.ts

100% Statements 46/46
100% Branches 2/2
100% Functions 1/1
100% Lines 46/46

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    471x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    2x
    2x
    2x
    8x
    8x
    8x
     import { jest } from "@jest/globals";

    /**
     * @example
     * ```ts
     * import { useImmediateRaf } from "@react-md/core/test-utils";
     *
     * describe("some test suite", () => {
     *   it("should test something with requestAnimationFrame", () => {
     *     const raf = useImmediateRaf();
     *
     *     // do some testing with requestAnimationFrame
     *
     *     // reset to original at the end of the test
     *     raf.mockRestore()
     *   });
     * });
     * ```
     *
     * @example
     * Automatic Cleanup
     * ```ts
     * import { useImmediateRaf } from "@react-md/core/test-utils";
     *
     * afterEach(() => {
     *   jest.restoreAllMocks();
     * });
     *
     * describe("some test suite", () => {
     *   it("should test something with requestAnimationFrame", () => {
     *     const raf = useImmediateRaf();
     *
     *     // do some testing with requestAnimationFrame
     *   });
     * });
     * ```
     *
     * @remarks \@since 6.0.0
     */
    export const useImmediateRaf = (): jest.SpiedFunction<
      typeof requestAnimationFrame
    > =>
      jest.spyOn(window, "requestAnimationFrame").mockImplementation((cb) => {
        cb(0);
        return 0;
      });