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

1.2.54 • 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

Package Sidebar

Install

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

Weekly Downloads

211

Version

1.2.54

License

MIT

Unpacked Size

27.4 kB

Total Files

19

Last publish

Collaborators

  • jurijzahn8019