From d6074932112ce2b4157eb61ace42990659f1e986 Mon Sep 17 00:00:00 2001 From: Matt Phillips Date: Sat, 26 May 2018 11:37:45 +0100 Subject: [PATCH 01/16] Copy jest-each into jest core --- packages/jest-each/.gitignore | 4 + packages/jest-each/.travis.yml | 4 + packages/jest-each/LICENSE | 21 + packages/jest-each/README.md | 400 +++ packages/jest-each/assets/default-demo.gif | Bin 0 -> 7605156 bytes packages/jest-each/assets/describe-demo.gif | Bin 0 -> 5518848 bytes .../assets/tagged-template-literal.gif | Bin 0 -> 4317482 bytes packages/jest-each/assets/test-demo.gif | Bin 0 -> 4739588 bytes .../jest-each/examples/describe/index.spec.js | 13 + packages/jest-each/examples/it/index.spec.js | 54 + .../jest-each/examples/test/index.spec.js | 44 + packages/jest-each/package.json | 59 + .../src/__snapshots__/template.test.js.snap | 97 + packages/jest-each/src/array.js | 40 + packages/jest-each/src/array.test.js | 163 + packages/jest-each/src/index.js | 20 + packages/jest-each/src/index.test.js | 26 + packages/jest-each/src/template.js | 79 + packages/jest-each/src/template.test.js | 227 ++ packages/jest-each/yarn.lock | 2905 +++++++++++++++++ 20 files changed, 4156 insertions(+) create mode 100644 packages/jest-each/.gitignore create mode 100644 packages/jest-each/.travis.yml create mode 100644 packages/jest-each/LICENSE create mode 100644 packages/jest-each/README.md create mode 100644 packages/jest-each/assets/default-demo.gif create mode 100644 packages/jest-each/assets/describe-demo.gif create mode 100644 packages/jest-each/assets/tagged-template-literal.gif create mode 100644 packages/jest-each/assets/test-demo.gif create mode 100644 packages/jest-each/examples/describe/index.spec.js create mode 100644 packages/jest-each/examples/it/index.spec.js create mode 100644 packages/jest-each/examples/test/index.spec.js create mode 100644 packages/jest-each/package.json create mode 100644 packages/jest-each/src/__snapshots__/template.test.js.snap create mode 100644 packages/jest-each/src/array.js create mode 100644 packages/jest-each/src/array.test.js create mode 100644 packages/jest-each/src/index.js create mode 100644 packages/jest-each/src/index.test.js create mode 100644 packages/jest-each/src/template.js create mode 100644 packages/jest-each/src/template.test.js create mode 100644 packages/jest-each/yarn.lock diff --git a/packages/jest-each/.gitignore b/packages/jest-each/.gitignore new file mode 100644 index 000000000000..24e6a5fe7fc3 --- /dev/null +++ b/packages/jest-each/.gitignore @@ -0,0 +1,4 @@ +node_modules +*.log +coverage +dist diff --git a/packages/jest-each/.travis.yml b/packages/jest-each/.travis.yml new file mode 100644 index 000000000000..685f50eebfc6 --- /dev/null +++ b/packages/jest-each/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - node +after_success: 'npm run test:coveralls' diff --git a/packages/jest-each/LICENSE b/packages/jest-each/LICENSE new file mode 100644 index 000000000000..dc7a51d59b1f --- /dev/null +++ b/packages/jest-each/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017-present Matt Phillips + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/jest-each/README.md b/packages/jest-each/README.md new file mode 100644 index 000000000000..b99f2c190455 --- /dev/null +++ b/packages/jest-each/README.md @@ -0,0 +1,400 @@ +
+

jest-each

+ Jest Parameterised Testing +
+ +
+ +[![Build Status](https://img.shields.io/travis/mattphillips/jest-each.svg?style=flat-square)](https://travis-ci.org/mattphillips/jest-each) +[![Code Coverage](https://img.shields.io/coveralls/mattphillips/jest-each.svg?style=flat-square)](https://coveralls.io/github/mattphillips/jest-each?branch=master) +[![version](https://img.shields.io/npm/v/jest-each.svg?style=flat-square)](https://www.npmjs.com/package/jest-each) +[![downloads](https://img.shields.io/npm/dm/jest-each.svg?style=flat-square)](http://npm-stat.com/charts.html?package=jest-each&from=2017-03-21) +[![MIT License](https://img.shields.io/npm/l/jest-each.svg?style=flat-square)](https://github.com/mattphillips/jest-each/blob/master/LICENSE) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![Examples](https://img.shields.io/badge/%F0%9F%92%A1-examples-ff615b.svg?style=flat-square)](https://github.com/mattphillips/jest-each/tree/master/examples) + +A parameterised testing library for [Jest](https://facebook.github.io/jest/) inspired by [mocha-each](https://github.com/ryym/mocha-each). + +jest-each allows you to provide multiple arguments to your `test`/`describe` which results in the test/suite being run once per row of parameters. + +## Features + - `.test` to runs multiple tests with parameterised data + * Also under the alias: `.it` + - `.test.only` to only run the parameterised tests + * Also under the aliases: `.it.only` or `.fit` + - `.test.skip` to skip the parameterised tests + * Also under the aliases: `.it.skip` or `.xit` or `.xtest` + - `.describe` to runs test suites with parameterised data + - `.describe.only` to only run the parameterised suite of tests + * Also under the aliases: `.fdescribe` + - `.describe.skip` to skip the parameterised suite of tests + * Also under the aliases: `.xdescribe` + - Asynchronous tests with `done` + - Unique test titles with: [sprintf](https://github.com/alexei/sprintf.js) + - 🖖 Spock like data tables with [Tagged Template Literals](#tagged-template-literal-of-rows) + +--- + + - [Demo](#demo) + - [Installation](#installation) + - [Importing](#importing) + - APIs + * [Array of Rows](#array-of-rows) + - [Usage](#usage) + * [Tagged Template Literal of rows](#tagged-template-literal-of-rows) + - [Usage](#usage-1) + +## Demo + +#### Tests without jest-each + +![Current jest tests](assets/default-demo.gif) + +#### Tests can be re-written with jest-each to: + +**`.test`** + +![Current jest tests](assets/test-demo.gif) + +**`.test` with Tagged Template Literals** + +![Current jest tests](assets/tagged-template-literal.gif) + +**`.describe`** + +![Current jest tests](assets/describe-demo.gif) + +## 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. + +```js +// es6 +import each from 'jest-each'; + +// es5 +const each = require('jest-each'); +``` + +## Array of rows + +### API + +#### `each([parameters]).test(name, testFn)` + +##### `each`: + - parameters: `Array` of Arrays with the arguments that are passed into the `testFn` for each row + +##### `.test`: + - name: `String` the title of the `test`, use `%s` in the name string to positionally inject parameter values into the test title + - testFn: `Function` the test logic, this is the function that will receive the parameters of each row as function arguments + +#### `each([parameters]).describe(name, suiteFn)` + +##### `each`: + - parameters: `Array` of Arrays with the arguments that are passed into the `suiteFn` for each row + +##### `.describe`: + - name: `String` the title of the `describe`, use `%s` in the name string to positionally inject parameter values into the suite title + - suiteFn: `Function` the suite of `test`/`it`s to be ran, this is the function that will receive the parameters in each row as function arguments + +### Usage + +#### `.test(name, fn)` +Alias: `.it(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test('returns the result of adding %s to %s', (a, b, expected) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.only(name, fn)` +Aliases: `.it.only(name, fn)` or `.fit(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test.only('returns the result of adding %s to %s', (a, b, expected) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.skip(name, fn)` +Aliases: `.it.skip(name, fn)` or `.xit(name, fn)` or `.xtest(name, fn)` + +```js +each([ + [1, 1, 2] + [1, 2, 3], + [2, 1, 3], +]).test.skip('returns the result of adding %s to %s', (a, b, expected) => { + expect(a + b).toBe(expected); +}); +``` + +#### Asynchronous `.test(name, fn(done))` +Alias: `.it(name, fn(done))` + +```js +each([ + ['hello'], + ['mr'], + ['spy'], +]).test('gives 007 secret message ', (str, done) => { + const asynchronousSpy = (message) => { + expect(message).toBe(str); + done(); + }; + callSomeAsynchronousFunction(asynchronousSpy)(str); +}); +``` + +#### `.describe(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).describe('.add(%s, %s)', (a, b, expected) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); + + test('does not mutate first arg', () => { + a + b; + expect(a).toBe(a); + }); + + test('does not mutate second arg', () => { + a + b; + expect(b).toBe(b); + }); +}); +``` + +#### `.describe.only(name, fn)` +Aliases: `.fdescribe(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).describe.only('.add(%s, %s)', (a, b, expected) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +#### `.describe.skip(name, fn)` +Aliases: `.xdescribe(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).describe.skip('.add(%s, %s)', (a, b, expected) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +--- + +## Tagged Template Literal of rows + +### API + +#### `each[tagged template].test(name, suiteFn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test('returns $expected when adding $a to $b', ({ a, b, expected }) => { + expect(a + b).toBe(expected); +}); +``` + +##### `each` takes a tagged template string with: + - First row of variable name column headings seperated with `|` + - One or more subsequent rows of data supplied as template literal expressions using `${value}` syntax. + +##### `.test`: + - name: `String` the title of the `test`, use `$variable` in the name string to inject test values into the test title from the tagged template expressions + - testFn: `Function` the test logic, this is the function that will receive the parameters of each row as function arguments + +#### `each[tagged template].describe(name, suiteFn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe('$a + $b', ({ a, b, expected }) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); + + test('does not mutate first arg', () => { + a + b; + expect(a).toBe(a); + }); + + test('does not mutate second arg', () => { + a + b; + expect(b).toBe(b); + }); +}); +``` + +##### `each` takes a tagged template string with: + - First row of variable name column headings seperated with `|` + - One or more subsequent rows of data supplied as template literal expressions using `${value}` syntax. + +##### `.describe`: + - name: `String` the title of the `test`, use `$variable` in the name string to inject test values into the test title from the tagged template expressions + - suiteFn: `Function` the suite of `test`/`it`s to be ran, this is the function that will receive the parameters in each row as function arguments + +### Usage + +#### `.test(name, fn)` +Alias: `.it(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test('returns $expected when adding $a to $b', ({ a, b, expected }) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.only(name, fn)` +Aliases: `.it.only(name, fn)` or `.fit(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test.only('returns $expected when adding $a to $b', ({ a, b, expected }) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.skip(name, fn)` +Aliases: `.it.skip(name, fn)` or `.xit(name, fn)` or `.xtest(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test.skip('returns $expected when adding $a to $b', ({ a, b, expected }) => { + expect(a + b).toBe(expected); +}); +``` + +#### Asynchronous `.test(name, fn(done))` +Alias: `.it(name, fn(done))` + +```js +each` + str + ${'hello'} + ${'mr'} + ${'spy'} +`.test('gives 007 secret message: $str', ({ str }, done) => { + const asynchronousSpy = (message) => { + expect(message).toBe(str); + done(); + }; + callSomeAsynchronousFunction(asynchronousSpy)(str); +}); +``` + +#### `.describe(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe('$a + $b', ({ a, b, expected }) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); + + test('does not mutate first arg', () => { + a + b; + expect(a).toBe(a); + }); + + test('does not mutate second arg', () => { + a + b; + expect(b).toBe(b); + }); +}); +``` + +#### `.describe.only(name, fn)` +Aliases: `.fdescribe(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe.only('$a + $b', ({ a, b, expected }) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +#### `.describe.skip(name, fn)` +Aliases: `.xdescribe(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe.skip('$a + $b', ({ a, b, expected }) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +## License + +MIT diff --git a/packages/jest-each/assets/default-demo.gif b/packages/jest-each/assets/default-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..15c34d58a4844a0365f471b7ac67b9b264490048 GIT binary patch literal 7605156 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˸?d$4%GL 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%0DT|^DEc8exM`&(_mV9 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