Skip to content

WezomCompany/toolkit-jest

Repository files navigation

@wezom/toolkit-jest

Test Build

Useful tools for working with Jest

Statements Branches Functions Lines
Statements Branches Functions Lines

Table of Content:

  1. Usage
  2. Tools
    1. jestFunctionSignatureTest()
    2. jestLogMute() and jestLogUnmute()
  3. Contributing
  4. License

Usage

Install npm package

npm i @wezom/toolkit-jest

▲ Go Top | ▲ Table of Content


Tools

jestFunctionSignatureTest()

Function signature test with set of custom cases

Parameters:

Name Data type Argument Default value Description
method T
cases FunctionSignatureTestCase<T>[]

Returns: void

Examples:

// some-function.ts
export const someFunction = (y: boolean, z: number, w: number): number | null =>
	y ? z + w : null;

// some-function.spec.ts
import { someFunction } from 'some-function';
import { jestFunctionSignatureTest } from '@wezom/toolkit-jest';

describe('Function signature should match specification', () => {
	jestFunctionSignatureTest(someFunction, [
		{
			parameters: [true, 4, 5],
			expected: 9
		},
		{
			name: 'Custom test name',
			parameters: [false, 4, 5],
			expected: null
		},
		{
			name: 'Invoke parameters by function',
			parameters: () => {
				// some logic for generate params
				return [...params];
			},
			expected: null
		}
	]);
});

▲ Go Top | ▲ Table of Content


jestLogMute() and jestLogUnmute()

Mute default console.log logging

Parameters:

Name Data type Argument Default value Description
method MethodType optional 'log'

Returns: void

Examples:

// some-function.ts
export const someFunction = (x: number, y: number): number => {
	console.log('SOME LOG MESSAGE');
	return x + y;
};

// some-function.spec.ts
import { someFunction } from 'some-function';
import { jestLogMute, jestLogUnmute } from '@wezom/toolkit-jest';

describe('Should be silent test', () => {
	beforeAll(() => jestLogMute());

	test('silent testing of the `someFunction`', () => {
		expect(someFunction(1, 2)).toBe(3);
	});

	afterAll(() => jestLogUnmute());
});

▲ Go Top | ▲ Table of Content


Contributing

Please fill free to create issues or send PR

Licence

BSD-3-Clause License