JSPM

jest-each

0.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 32143940
  • Score
    100M100P100Q241010F
  • License MIT

Parameterised tests for Jest

Package Exports

  • jest-each

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jest-each) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

jest-each

Build Status Coverage Status

A parameterised testing library for Jest inspired by mocha-each.

jest-each allows you to provide multiple arguments to your test which results in the test being run once per row of parameters.

Features

  • Parameterised test data
  • Unique test titles with: sprintf
  • Supports test.skip to skip the parameterised tests
  • Supports test.only to only run the parameterised tests
  • Supports asynchronous tests with done

Installation

npm i --save-dev jest-each

yarn add -D jest-each

Importing

jest-each is a default export so it can be imported with whatever name you like.

// es6
import each from 'jest-each';

// es5
const each = require('jest-each');

API

each([parameters]).test(title, testCallback)

each:

  • parameters: Array the arguments that are passed into the testCallback

.test:

  • title: String the title of the test, use %s in the title string to positionally inject parameter values into the test title
  • testCallback: Function the test logic, this is the function that will receive the parameters as function arguments

Usage

.test

import each from 'jest-each';
import add from './add';

each([
  [1, 1, 2],
  [1, 2, 3],
  [2, 1, 3],
]).test('returns the result of adding %s to %s', (a, b, expected) => {
  expect(add(a, b)).toBe(expected);
});

.test.only

each([ [1, 1, 2] ]).test.only('returns the result of adding %s to %s', (a, b, expected) => {
  expect(add(a, b)).toBe(expected);
});

.test.skip

each([ [1, 1, 2] ]).test.skip('returns the result of adding %s to %s', (a, b, expected) => {
  expect(add(a, b)).toBe(expected);
});

asynchronous .test

each([
  ['hello'],
  ['mr'],
  ['spy'],
]).test('gives 007 secret message ', (str, done) => {
  const asynchronousSpy = (message) => {
    expect(message).toBe(str);
    done();
  };
  callSomeAsynchronousFunction(asynchronousSpy)(str);
});

License

MIT