jest-test-each
This package will help you to run parametrised tests easily [typesafe] without text tables or arrays of arrays.

Table of Contents
- Examples
- Setup
- Features
- What's next
Examples
You can see demo project here.
Tests are here.
Simple
its('roundings')
.each([
{ input: 0, expected: '0' },
{ input: 0.99, expected: '1' },
{ input: 102.99998, expected: '103' },
{ input: -6, expected: '-6' },
])
.run(t => {
expect(Math.round(t.input).toFixed(0)).toBe(t.expected);
});
Run test in idea with jest plugin:

More complex
its('check calculator')
.each([
{ a: 1, b: 2, exp: [3, -1, 2, 0.5] },
{ a: 1, b: 0, exp: [1, 1, 0, Infinity] },
])
.each(t => [
{ sign: '+' as const, exp: t.exp[0] },
{ sign: '-' as const, exp: t.exp[1] },
{ sign: '*' as const, exp: t.exp[2] },
{ sign: '/' as const, exp: t.exp[3] },
])
.each(t => [{ flatDesc: `${t.a} ${t.sign} ${t.b} should be ${t.exp}` }])
.run(async t => {
expect(calc(t.a, t.b, t.sign)).toBe(t.exp);
});

and the same test with auto cases names:

Setup
Install dev dependency:
yarn add -D jest-test-each
Add the following into your config setup.js file which is referred in jest.config.js - setupFilesAfterEnv section:
// Looking a way to improve this. Can anyone help ?)
require('jest-test-each');
for .ts tests to see globals 'its' and 'Test' add the following to your tsconfig:
// tsconfig.json
"include": [
...
"node_modules/jest-test-each/dist/index.d.ts"
]
Additional
You can override test runner environment (by default it is jest env) by the following:
TestEachEnv({
describe: describe,
it: it,
beforeAll: beforeAll,
...
});
Features
What's next