Skip to content

Create a test-case table for use with Jest's test.each tagged template literal

Notifications You must be signed in to change notification settings

cameronhunter/jest-each-table

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jest-each-table

Take advantage of jest's test.each tagged template literal functionality without needing to hardcode the test-cases as template literals.

Usage

import createTestTable from 'jest-each-table';

const testcases = createTestTable(
  [...Array(10)].map((_, i) => ({
    inputs: { left: i, right: i },
    output: i + i
  }))
);

const testsuite = test.each(...testcases);

testsuite('$inputs.left + $inputs.right = $output', ({ inputs, output }) => {
  expect(inputs.left + inputs.right).toBe(output);
});

Context

Jest's test.each functionality can be used in two ways:

  1. test.each (function): This allows an Array of Arrays with the arguments that are passed into the test fn for each row.
  2. test.each (tagged template literal): This allows a table of test-cases to be defined as an ES2015 string template.

Unfortunately test.each (the function) uses printf formatting for creating the test title which has serious drawbacks compared to how the title is formatted using test.each (the tagged template literal) which supports $variable.

About

Create a test-case table for use with Jest's test.each tagged template literal

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published