@jurijzahn8019/jest-mock-inference-helper
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.19 • Public • Published

    jest-mock-inference-helper

    Coverage Status GitHub npm Vulnerabilities npm bundle size (scoped) GitHub last commit

    This targets typescrit projects and aims to simplify declaration of mocked classes and functions

    install

    npm i -D @jurijzahn8019/jest-mock-inference-helper

    usage

    asMock

    AsMockDemo

    Assuming SUT file

    import { bar, baz } from "./bar";
    
    export function foo() {
      return bar() + " - " + baz();
    }

    in your spec file

    import { asMock } from "@jurijzahn8019/jest-mock-inference-helper";
    import { foo } from "./foo";
    import { bar, baz } from "./bar";
    
    // Automock bar
    jest.mock("bar");
    
    const barMock = asMock(bar).mockReturnValue("bar");
    const bazMock = asMock(baz).mockReturnValue("baz");
    
    // same as
    const barMock = (bar as jest.MockedFunction<typeof bar>).mockReturnValue("bar");
    const bazMock = (baz as jest.MockedFunction<typeof baz>).mockReturnValue("baz");
    
    describe("foo", () => {
      it("Should success", () => {
        const res = foo();
    
        await expect(barMock).toHaveBeenCalled();
      });
    });

    asMocks

    works similar to asMock but provides inference sugar for multiple functions in a single call

    AsMocksDemo

    Assuming SUT file

    import { bar, baz } from "./bar";
    
    export function foo() {
      return bar() + " - " + baz();
    }

    in your spec file

    import { asMock } from "@jurijzahn8019/jest-mock-inference-helper";
    import { foo } from "./foo";
    import { bar, baz } from "./bar";
    
    // Automock bar
    jest.mock("bar");
    
    const { barMock, bazMock } = asMocks({ bar, baz });
    
    // same as
    const barMock = bar as jest.MockedFunction<typeof bar>;
    const bazMock = baz as jest.MockedFunction<typeof baz>;
    
    describe("foo", () => {
      beforeEach(() => {
        barMock.mockReturnValue("bar");
        barzock.mockReturnValue("baz");
      });
    
      it("Should success", () => {
        const res = foo();
    
        await expect(barMock).toHaveBeenCalled();
      });
    });

    asClassMock

    Provides functionality to infer class mock type and also shortcuts to implement inner object fields and/or properties

    see test file for extended usage

    AsMocksDemo

    Assuming SUT file

    import { BarClass } from "./bar";
    
    export function foo() {
      const bar = new BarClass();
    
      return bar.func1() + " - " + bar.func2();
    }

    in your spec file

    import { asClassMock } from "@jurijzahn8019/jest-mock-inference-helper";
    import { foo } from "./foo";
    import { BarClass } from "./bar";
    
    // Automock bar
    jest.mock("bar");
    
    const BarClassMock = asClassMock(BarClass);
    
    // similar to
    const BarClassMock = bar as jest.MockedClass<BarClassMock>;
    
    describe("foo", () => {
      beforeEach(() => {
        BarClassMock.func1.mockReturnValue("bar");
      });
    
      it("Should success", () => {
        const res = foo();
    
        await expect(BarClassMock.func1).toHaveBeenCalled();
      });
    });

    Changelog

    Changelog.

    License

    MIT Lizenz

    Install

    npm i @jurijzahn8019/jest-mock-inference-helper

    DownloadsWeekly Downloads

    588

    Version

    1.1.19

    License

    MIT

    Unpacked Size

    111 kB

    Total Files

    18

    Last publish

    Collaborators

    • jurijzahn8019