This commit is contained in:
parent
7a9bf3199a
commit
c294e2e9ae
5702 changed files with 465039 additions and 34 deletions
22
node_modules/jest-each/LICENSE
generated
vendored
Normal file
22
node_modules/jest-each/LICENSE
generated
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
Copyright Contributors to the Jest project.
|
||||
|
||||
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.
|
||||
551
node_modules/jest-each/README.md
generated
vendored
Normal file
551
node_modules/jest-each/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,551 @@
|
|||
<div align="center">
|
||||
<h1>jest-each</h1>
|
||||
Jest Parameterised Testing
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
[](https://www.npmjs.com/package/jest-each) [](http://npm-stat.com/charts.html?package=jest-each&from=2017-03-21) [](https://github.com/jestjs/jest/blob/main/LICENSE)
|
||||
|
||||
A parameterised testing library for [Jest](https://jestjs.io/) 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`
|
||||
- `.test.concurrent`
|
||||
- Also under the alias: `.it.concurrent`
|
||||
- `.test.concurrent.only`
|
||||
- Also under the alias: `.it.concurrent.only`
|
||||
- `.test.concurrent.skip`
|
||||
- Also under the alias: `.it.concurrent.skip`
|
||||
- `.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 [`printf` formatting](https://nodejs.org/api/util.html#util_util_format_format_args):
|
||||
- `%p` - [pretty-format](https://www.npmjs.com/package/pretty-format).
|
||||
- `%s`- String.
|
||||
- `%d`- Number.
|
||||
- `%i` - Integer.
|
||||
- `%f` - Floating point value.
|
||||
- `%j` - JSON.
|
||||
- `%o` - Object.
|
||||
- `%#` - Index of the test case.
|
||||
- `%$` - Number of the test case.
|
||||
- `%%` - single percent sign ('%'). This does not consume an argument.
|
||||
- Unique test titles by injecting properties of test case object
|
||||
- 🖖 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
|
||||
|
||||

|
||||
|
||||
#### Tests can be re-written with jest-each to:
|
||||
|
||||
**`.test`**
|
||||
|
||||

|
||||
|
||||
**`.test` with Tagged Template Literals**
|
||||
|
||||

|
||||
|
||||
**`.describe`**
|
||||
|
||||

|
||||
|
||||
## 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';
|
||||
```
|
||||
|
||||
```js
|
||||
// es5
|
||||
const each = require('jest-each').default;
|
||||
```
|
||||
|
||||
## 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
|
||||
- _Note_ If you pass in a 1D array of primitives, internally it will be mapped to a table i.e. `[1, 2, 3] -> [[1], [2], [3]]`
|
||||
|
||||
##### `.test`:
|
||||
|
||||
- name: `String` the title of the `test`.
|
||||
- Generate unique test titles by positionally injecting parameters with [`printf` formatting](https://nodejs.org/api/util.html#util_util_format_format_args):
|
||||
- `%p` - [pretty-format](https://www.npmjs.com/package/pretty-format).
|
||||
- `%s`- String.
|
||||
- `%d`- Number.
|
||||
- `%i` - Integer.
|
||||
- `%f` - Floating point value.
|
||||
- `%j` - JSON.
|
||||
- `%o` - Object.
|
||||
- `%#` - Index of the test case.
|
||||
- `%$` - Number of the test case.
|
||||
- `%%` - single percent sign ('%'). This does not consume an argument.
|
||||
- Or generate unique test titles by injecting properties of test case object with `$variable`
|
||||
- To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` (only works for ["own" properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty), e.g. `$variable.constructor.name` wouldn't work)
|
||||
- You can use `$#` to inject the index of the test case
|
||||
- You cannot use `$variable` with the `printf` formatting except for `%%`
|
||||
- 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
|
||||
- _Note_ If you pass in a 1D array of primitives, internally it will be mapped to a table i.e. `[1, 2, 3] -> [[1], [2], [3]]`
|
||||
|
||||
##### `.describe`:
|
||||
|
||||
- name: `String` the title of the `describe`
|
||||
- Generate unique test titles by positionally injecting parameters with [`printf` formatting](https://nodejs.org/api/util.html#util_util_format_format_args):
|
||||
- `%p` - [pretty-format](https://www.npmjs.com/package/pretty-format).
|
||||
- `%s`- String.
|
||||
- `%d`- Number.
|
||||
- `%i` - Integer.
|
||||
- `%f` - Floating point value.
|
||||
- `%j` - JSON.
|
||||
- `%o` - Object.
|
||||
- `%#` - Index of the test case.
|
||||
- `%$` - Number of the test case.
|
||||
- `%%` - single percent sign ('%'). This does not consume an argument.
|
||||
- Or generate unique test titles by injecting properties of test case object with `$variable`
|
||||
- To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` (only works for ["own" properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty), e.g. `$variable.constructor.name` wouldn't work)
|
||||
- You can use `$#` to inject the index of the test case
|
||||
- You cannot use `$variable` with the `printf` formatting except for `%%`
|
||||
- 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 %d to %d', (a, b, expected) => {
|
||||
expect(a + b).toBe(expected);
|
||||
});
|
||||
```
|
||||
|
||||
```js
|
||||
each([
|
||||
{a: 1, b: 1, expected: 2},
|
||||
{a: 1, b: 2, expected: 3},
|
||||
{a: 2, b: 1, expected: 3},
|
||||
]).test('returns the result of 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([
|
||||
[1, 1, 2],
|
||||
[1, 2, 3],
|
||||
[2, 1, 3],
|
||||
]).test.only('returns the result of adding %d to %d', (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 %d to %d', (a, b, expected) => {
|
||||
expect(a + b).toBe(expected);
|
||||
});
|
||||
```
|
||||
|
||||
#### `.test.concurrent(name, fn)`
|
||||
|
||||
Aliases: `.it.concurrent(name, fn)`
|
||||
|
||||
```js
|
||||
each([
|
||||
[1, 1, 2],
|
||||
[1, 2, 3],
|
||||
[2, 1, 3],
|
||||
]).test.concurrent(
|
||||
'returns the result of adding %d to %d',
|
||||
(a, b, expected) => {
|
||||
expect(a + b).toBe(expected);
|
||||
},
|
||||
);
|
||||
```
|
||||
|
||||
#### `.test.concurrent.only(name, fn)`
|
||||
|
||||
Aliases: `.it.concurrent.only(name, fn)`
|
||||
|
||||
```js
|
||||
each([
|
||||
[1, 1, 2],
|
||||
[1, 2, 3],
|
||||
[2, 1, 3],
|
||||
]).test.concurrent.only(
|
||||
'returns the result of adding %d to %d',
|
||||
(a, b, expected) => {
|
||||
expect(a + b).toBe(expected);
|
||||
},
|
||||
);
|
||||
```
|
||||
|
||||
#### `.test.concurrent.skip(name, fn)`
|
||||
|
||||
Aliases: `.it.concurrent.skip(name, fn)`
|
||||
|
||||
```js
|
||||
each([
|
||||
[1, 1, 2],
|
||||
[1, 2, 3],
|
||||
[2, 1, 3],
|
||||
]).test.concurrent.skip(
|
||||
'returns the result of adding %d to %d',
|
||||
(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: %s',
|
||||
(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(%d, %d)', (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);
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
```js
|
||||
each([
|
||||
{a: 1, b: 1, expected: 2},
|
||||
{a: 1, b: 2, expected: 3},
|
||||
{a: 2, b: 1, expected: 3},
|
||||
]).describe('.add($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([
|
||||
[1, 1, 2],
|
||||
[1, 2, 3],
|
||||
[2, 1, 3],
|
||||
]).describe.only('.add(%d, %d)', (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(%d, %d)', (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 separated 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
|
||||
- To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` (only works for ["own" properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty), e.g. `$variable.constructor.name` wouldn't work)
|
||||
- You can use `$#` to inject the index of the table row.
|
||||
- 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 separated 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
|
||||
- To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` (only works for ["own" properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty), e.g. `$variable.constructor.name` wouldn't work)
|
||||
- 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
|
||||
143
node_modules/jest-each/build/index.d.ts
generated
vendored
Normal file
143
node_modules/jest-each/build/index.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import {Global as Global_2} from '@jest/types';
|
||||
|
||||
export declare function bind<EachCallback extends Global_2.TestCallback>(
|
||||
cb: GlobalCallback,
|
||||
supportsDone?: boolean,
|
||||
needsEachError?: boolean,
|
||||
): Global_2.EachTestFn<any>;
|
||||
|
||||
declare const each: {
|
||||
(
|
||||
table: Global_2.EachTable,
|
||||
...data: Global_2.TemplateData
|
||||
): ReturnType<typeof install>;
|
||||
withGlobal(g: Global_2): (
|
||||
table: Global_2.EachTable,
|
||||
...data: Global_2.TemplateData
|
||||
) => {
|
||||
describe: {
|
||||
(
|
||||
title: string,
|
||||
suite: Global_2.EachTestFn<Global_2.BlockFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
};
|
||||
fdescribe: any;
|
||||
fit: any;
|
||||
it: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
test: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
xdescribe: any;
|
||||
xit: any;
|
||||
xtest: any;
|
||||
};
|
||||
};
|
||||
export default each;
|
||||
|
||||
declare type GlobalCallback = (
|
||||
testName: string,
|
||||
fn: Global_2.ConcurrentTestFn,
|
||||
timeout?: number,
|
||||
eachError?: Error,
|
||||
) => void;
|
||||
|
||||
declare const install: (
|
||||
g: Global_2,
|
||||
table: Global_2.EachTable,
|
||||
...data: Global_2.TemplateData
|
||||
) => {
|
||||
describe: {
|
||||
(
|
||||
title: string,
|
||||
suite: Global_2.EachTestFn<Global_2.BlockFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
};
|
||||
fdescribe: any;
|
||||
fit: any;
|
||||
it: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
test: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global_2.EachTestFn<Global_2.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
xdescribe: any;
|
||||
xit: any;
|
||||
xtest: any;
|
||||
};
|
||||
|
||||
export {};
|
||||
420
node_modules/jest-each/build/index.js
generated
vendored
Normal file
420
node_modules/jest-each/build/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,420 @@
|
|||
/*!
|
||||
* /**
|
||||
* * Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
* *
|
||||
* * This source code is licensed under the MIT license found in the
|
||||
* * LICENSE file in the root directory of this source tree.
|
||||
* * /
|
||||
*/
|
||||
/******/ (() => { // webpackBootstrap
|
||||
/******/ "use strict";
|
||||
/******/ var __webpack_modules__ = ({
|
||||
|
||||
/***/ "./src/bind.ts"
|
||||
(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({
|
||||
value: true
|
||||
}));
|
||||
exports["default"] = bind;
|
||||
function _jestUtil() {
|
||||
const data = require("jest-util");
|
||||
_jestUtil = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
var _array = _interopRequireDefault(__webpack_require__("./src/table/array.ts"));
|
||||
var _template = _interopRequireDefault(__webpack_require__("./src/table/template.ts"));
|
||||
var _validation = __webpack_require__("./src/validation.ts");
|
||||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
// type TestFn = (done?: Global.DoneFn) => Promise<any> | void | undefined;
|
||||
|
||||
function bind(cb, supportsDone = true, needsEachError = false) {
|
||||
const bindWrap = (table, ...taggedTemplateData) => {
|
||||
const errorWithStack = new (_jestUtil().ErrorWithStack)(undefined, bindWrap);
|
||||
return function eachBind(title, test, timeout) {
|
||||
title = (0, _jestUtil().convertDescriptorToString)(title);
|
||||
try {
|
||||
const tests = isArrayTable(taggedTemplateData) ? buildArrayTests(title, table) : buildTemplateTests(title, table, taggedTemplateData);
|
||||
for (const row of tests) {
|
||||
if (needsEachError) {
|
||||
cb(row.title, applyArguments(supportsDone, row.arguments, test), timeout, errorWithStack);
|
||||
} else {
|
||||
cb(row.title, applyArguments(supportsDone, row.arguments, test), timeout);
|
||||
}
|
||||
}
|
||||
return;
|
||||
} catch (error) {
|
||||
const err = new Error(error.message);
|
||||
err.stack = errorWithStack.stack?.replace(/^Error: /s, `Error: ${error.message}`);
|
||||
return cb(title, () => {
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
return bindWrap;
|
||||
}
|
||||
const isArrayTable = data => data.length === 0;
|
||||
const buildArrayTests = (title, table) => {
|
||||
(0, _validation.validateArrayTable)(table);
|
||||
return (0, _array.default)(title, table);
|
||||
};
|
||||
const buildTemplateTests = (title, table, taggedTemplateData) => {
|
||||
const headings = getHeadingKeys(table[0]);
|
||||
(0, _validation.validateTemplateTableArguments)(headings, taggedTemplateData);
|
||||
return (0, _template.default)(title, headings, taggedTemplateData);
|
||||
};
|
||||
const getHeadingKeys = headings => (0, _validation.extractValidTemplateHeadings)(headings).replaceAll(/\s/g, '').split('|');
|
||||
const applyArguments = (supportsDone, params, test) => supportsDone && params.length < test.length ? done => test(...params, done) : () => test(...params);
|
||||
|
||||
/***/ },
|
||||
|
||||
/***/ "./src/table/array.ts"
|
||||
(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({
|
||||
value: true
|
||||
}));
|
||||
exports["default"] = array;
|
||||
function util() {
|
||||
const data = _interopRequireWildcard(require("util"));
|
||||
util = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _prettyFormat() {
|
||||
const data = require("pretty-format");
|
||||
_prettyFormat = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
var _interpolation = __webpack_require__("./src/table/interpolation.ts");
|
||||
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const SUPPORTED_PLACEHOLDERS = /%[#Odfijops]/g;
|
||||
const PRETTY_PLACEHOLDER = '%p';
|
||||
const INDEX_PLACEHOLDER = '%#';
|
||||
const NUMBER_PLACEHOLDER = '%$';
|
||||
const PLACEHOLDER_PREFIX = '%';
|
||||
const ESCAPED_PLACEHOLDER_PREFIX = '%%';
|
||||
const JEST_EACH_PLACEHOLDER_ESCAPE = '@@__JEST_EACH_PLACEHOLDER_ESCAPE__@@';
|
||||
function array(title, arrayTable) {
|
||||
if (isTemplates(title, arrayTable)) {
|
||||
return arrayTable.map((template, index) => ({
|
||||
arguments: [template],
|
||||
title: (0, _interpolation.interpolateVariables)(title, template, index).replaceAll(ESCAPED_PLACEHOLDER_PREFIX, PLACEHOLDER_PREFIX)
|
||||
}));
|
||||
}
|
||||
return normaliseTable(arrayTable).map((row, index) => ({
|
||||
arguments: row,
|
||||
title: formatTitle(title, row, index)
|
||||
}));
|
||||
}
|
||||
const isTemplates = (title, arrayTable) => !SUPPORTED_PLACEHOLDERS.test(interpolateEscapedPlaceholders(title)) && !isTable(arrayTable) && arrayTable.every(col => col != null && typeof col === 'object');
|
||||
const normaliseTable = table => isTable(table) ? table : table.map(colToRow);
|
||||
const isTable = table => table.every(Array.isArray);
|
||||
const colToRow = col => [col];
|
||||
const formatTitle = (title, row, rowIndex) => row.reduce((formattedTitle, value) => {
|
||||
const [placeholder] = getMatchingPlaceholders(formattedTitle);
|
||||
const normalisedValue = normalisePlaceholderValue(value);
|
||||
if (!placeholder) return formattedTitle;
|
||||
if (placeholder === PRETTY_PLACEHOLDER) return interpolatePrettyPlaceholder(formattedTitle, normalisedValue);
|
||||
return util().format(formattedTitle, normalisedValue);
|
||||
}, interpolateTitleIndexAndNumber(interpolateEscapedPlaceholders(title), rowIndex)).replaceAll(JEST_EACH_PLACEHOLDER_ESCAPE, PLACEHOLDER_PREFIX);
|
||||
const normalisePlaceholderValue = value => typeof value === 'string' ? value.replaceAll(PLACEHOLDER_PREFIX, JEST_EACH_PLACEHOLDER_ESCAPE) : value;
|
||||
const getMatchingPlaceholders = title => title.match(SUPPORTED_PLACEHOLDERS) || [];
|
||||
const interpolateEscapedPlaceholders = title => title.replaceAll(ESCAPED_PLACEHOLDER_PREFIX, JEST_EACH_PLACEHOLDER_ESCAPE);
|
||||
const interpolateTitleIndexAndNumber = (title, index) => title.replace(INDEX_PLACEHOLDER, index.toString()).replace(NUMBER_PLACEHOLDER, (index + 1).toString());
|
||||
const interpolatePrettyPlaceholder = (title, value) => title.replace(PRETTY_PLACEHOLDER, (0, _prettyFormat().format)(value, {
|
||||
maxDepth: 1,
|
||||
min: true
|
||||
}));
|
||||
|
||||
/***/ },
|
||||
|
||||
/***/ "./src/table/interpolation.ts"
|
||||
(__unused_webpack_module, exports) {
|
||||
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({
|
||||
value: true
|
||||
}));
|
||||
exports.getPath = getPath;
|
||||
exports.interpolateVariables = void 0;
|
||||
function _getType() {
|
||||
const data = require("@jest/get-type");
|
||||
_getType = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _prettyFormat() {
|
||||
const data = require("pretty-format");
|
||||
_prettyFormat = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const interpolateVariables = (title, template, index) => title.replaceAll(new RegExp(`\\$(${Object.keys(template).join('|')})[.\\w]*`, 'g'), match => {
|
||||
const keyPath = match.slice(1).split('.');
|
||||
const value = getPath(template, keyPath);
|
||||
return (0, _getType().isPrimitive)(value) ? String(value) : (0, _prettyFormat().format)(value, {
|
||||
maxDepth: 1,
|
||||
min: true
|
||||
});
|
||||
}).replace('$#', `${index}`);
|
||||
|
||||
/* eslint import-x/export: 0*/
|
||||
exports.interpolateVariables = interpolateVariables;
|
||||
function getPath(template, [head, ...tail]) {
|
||||
if (template === null) return 'null';
|
||||
if (template === undefined) return 'undefined';
|
||||
if (!head || !Object.prototype.hasOwnProperty.call(template, head)) return template;
|
||||
return getPath(template[head], tail);
|
||||
}
|
||||
|
||||
/***/ },
|
||||
|
||||
/***/ "./src/table/template.ts"
|
||||
(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({
|
||||
value: true
|
||||
}));
|
||||
exports["default"] = template;
|
||||
var _interpolation = __webpack_require__("./src/table/interpolation.ts");
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
function template(title, headings, row) {
|
||||
const table = convertRowToTable(row, headings);
|
||||
const templates = convertTableToTemplates(table, headings);
|
||||
return templates.map((template, index) => ({
|
||||
arguments: [template],
|
||||
title: (0, _interpolation.interpolateVariables)(title, template, index)
|
||||
}));
|
||||
}
|
||||
const convertRowToTable = (row, headings) => Array.from({
|
||||
length: row.length / headings.length
|
||||
}, (_, index) => row.slice(index * headings.length, index * headings.length + headings.length));
|
||||
const convertTableToTemplates = (table, headings) => table.map(row => Object.fromEntries(row.map((value, index) => [headings[index], value])));
|
||||
|
||||
/***/ },
|
||||
|
||||
/***/ "./src/validation.ts"
|
||||
(__unused_webpack_module, exports) {
|
||||
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({
|
||||
value: true
|
||||
}));
|
||||
exports.validateTemplateTableArguments = exports.validateArrayTable = exports.extractValidTemplateHeadings = void 0;
|
||||
function _chalk() {
|
||||
const data = _interopRequireDefault(require("chalk"));
|
||||
_chalk = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _prettyFormat() {
|
||||
const data = require("pretty-format");
|
||||
_prettyFormat = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const EXPECTED_COLOR = _chalk().default.green;
|
||||
const RECEIVED_COLOR = _chalk().default.red;
|
||||
const validateArrayTable = table => {
|
||||
if (!Array.isArray(table)) {
|
||||
throw new TypeError('`.each` must be called with an Array or Tagged Template Literal.\n\n' + `Instead was called with: ${(0, _prettyFormat().format)(table, {
|
||||
maxDepth: 1,
|
||||
min: true
|
||||
})}\n`);
|
||||
}
|
||||
if (isTaggedTemplateLiteral(table)) {
|
||||
if (isEmptyString(table[0])) {
|
||||
throw new Error('Error: `.each` called with an empty Tagged Template Literal of table data.\n');
|
||||
}
|
||||
throw new Error('Error: `.each` called with a Tagged Template Literal with no data, remember to interpolate with ${expression} syntax.\n');
|
||||
}
|
||||
if (isEmptyTable(table)) {
|
||||
throw new Error('Error: `.each` called with an empty Array of table data.\n');
|
||||
}
|
||||
};
|
||||
exports.validateArrayTable = validateArrayTable;
|
||||
const isTaggedTemplateLiteral = array => array.raw !== undefined;
|
||||
const isEmptyTable = table => table.length === 0;
|
||||
const isEmptyString = str => typeof str === 'string' && str.trim() === '';
|
||||
const validateTemplateTableArguments = (headings, data) => {
|
||||
const incompleteData = data.length % headings.length;
|
||||
const missingData = headings.length - incompleteData;
|
||||
if (incompleteData > 0) {
|
||||
throw new Error(`Not enough arguments supplied for given headings:\n${EXPECTED_COLOR(headings.join(' | '))}\n\n` + `Received:\n${RECEIVED_COLOR((0, _prettyFormat().format)(data))}\n\n` + `Missing ${RECEIVED_COLOR(missingData.toString())} ${pluralize('argument', missingData)}`);
|
||||
}
|
||||
};
|
||||
exports.validateTemplateTableArguments = validateTemplateTableArguments;
|
||||
const pluralize = (word, count) => word + (count === 1 ? '' : 's');
|
||||
const START_OF_LINE = '^';
|
||||
const NEWLINE = '\\n';
|
||||
const HEADING = '\\s*[^\\s]+\\s*';
|
||||
const PIPE = '\\|';
|
||||
const REPEATABLE_HEADING = `(${PIPE}${HEADING})*`;
|
||||
const HEADINGS_FORMAT = new RegExp(START_OF_LINE + NEWLINE + HEADING + REPEATABLE_HEADING + NEWLINE, 'g');
|
||||
const extractValidTemplateHeadings = headings => {
|
||||
const matches = headings.match(HEADINGS_FORMAT);
|
||||
if (matches === null) {
|
||||
throw new Error(`Table headings do not conform to expected format:\n\n${EXPECTED_COLOR('heading1 | headingN')}\n\nReceived:\n\n${RECEIVED_COLOR((0, _prettyFormat().format)(headings))}`);
|
||||
}
|
||||
return matches[0];
|
||||
};
|
||||
exports.extractValidTemplateHeadings = extractValidTemplateHeadings;
|
||||
|
||||
/***/ }
|
||||
|
||||
/******/ });
|
||||
/************************************************************************/
|
||||
/******/ // The module cache
|
||||
/******/ var __webpack_module_cache__ = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/ // Check if module is in cache
|
||||
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||
/******/ if (cachedModule !== undefined) {
|
||||
/******/ return cachedModule.exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||
/******/ // no module.id needed
|
||||
/******/ // no module.loaded needed
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/************************************************************************/
|
||||
var __webpack_exports__ = {};
|
||||
// This entry needs to be wrapped in an IIFE because it uses a non-standard name for the exports (exports).
|
||||
(() => {
|
||||
var exports = __webpack_exports__;
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({
|
||||
value: true
|
||||
}));
|
||||
Object.defineProperty(exports, "bind", ({
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _bind.default;
|
||||
}
|
||||
}));
|
||||
exports["default"] = void 0;
|
||||
var _bind = _interopRequireDefault(__webpack_require__("./src/bind.ts"));
|
||||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const install = (g, table, ...data) => {
|
||||
const bindingWithArray = data.length === 0;
|
||||
const bindingWithTemplate = Array.isArray(table) && !!table.raw;
|
||||
if (!bindingWithArray && !bindingWithTemplate) {
|
||||
throw new Error('`.each` must only be called with an Array or Tagged Template Literal.');
|
||||
}
|
||||
const test = (title, test, timeout) => (0, _bind.default)(g.test)(table, ...data)(title, test, timeout);
|
||||
test.skip = (0, _bind.default)(g.test.skip)(table, ...data);
|
||||
test.only = (0, _bind.default)(g.test.only)(table, ...data);
|
||||
const testConcurrent = (title, test, timeout) => (0, _bind.default)(g.test.concurrent)(table, ...data)(title, test, timeout);
|
||||
test.concurrent = testConcurrent;
|
||||
testConcurrent.only = (0, _bind.default)(g.test.concurrent.only)(table, ...data);
|
||||
testConcurrent.skip = (0, _bind.default)(g.test.concurrent.skip)(table, ...data);
|
||||
const it = (title, test, timeout) => (0, _bind.default)(g.it)(table, ...data)(title, test, timeout);
|
||||
it.skip = (0, _bind.default)(g.it.skip)(table, ...data);
|
||||
it.only = (0, _bind.default)(g.it.only)(table, ...data);
|
||||
it.concurrent = testConcurrent;
|
||||
const xit = (0, _bind.default)(g.xit)(table, ...data);
|
||||
const fit = (0, _bind.default)(g.fit)(table, ...data);
|
||||
const xtest = (0, _bind.default)(g.xtest)(table, ...data);
|
||||
const describe = (title, suite, timeout) => (0, _bind.default)(g.describe, false)(table, ...data)(title, suite, timeout);
|
||||
describe.skip = (0, _bind.default)(g.describe.skip, false)(table, ...data);
|
||||
describe.only = (0, _bind.default)(g.describe.only, false)(table, ...data);
|
||||
const fdescribe = (0, _bind.default)(g.fdescribe, false)(table, ...data);
|
||||
const xdescribe = (0, _bind.default)(g.xdescribe, false)(table, ...data);
|
||||
return {
|
||||
describe,
|
||||
fdescribe,
|
||||
fit,
|
||||
it,
|
||||
test,
|
||||
xdescribe,
|
||||
xit,
|
||||
xtest
|
||||
};
|
||||
};
|
||||
const each = (table, ...data) => install(globalThis, table, ...data);
|
||||
each.withGlobal = g => (table, ...data) => install(g, table, ...data);
|
||||
var _default = exports["default"] = each;
|
||||
})();
|
||||
|
||||
module.exports = __webpack_exports__;
|
||||
/******/ })()
|
||||
;
|
||||
4
node_modules/jest-each/build/index.mjs
generated
vendored
Normal file
4
node_modules/jest-each/build/index.mjs
generated
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import cjsModule from './index.js';
|
||||
|
||||
export const bind = cjsModule.bind;
|
||||
export default cjsModule.default;
|
||||
43
node_modules/jest-each/package.json
generated
vendored
Normal file
43
node_modules/jest-each/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"name": "jest-each",
|
||||
"version": "30.3.0",
|
||||
"description": "Parameterised tests for Jest",
|
||||
"main": "./build/index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./build/index.d.ts",
|
||||
"require": "./build/index.js",
|
||||
"import": "./build/index.mjs",
|
||||
"default": "./build/index.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jestjs/jest.git",
|
||||
"directory": "packages/jest-each"
|
||||
},
|
||||
"keywords": [
|
||||
"jest",
|
||||
"parameterised",
|
||||
"test",
|
||||
"each"
|
||||
],
|
||||
"author": "Matt Phillips (mattphillips)",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jest/get-type": "30.1.0",
|
||||
"@jest/types": "30.3.0",
|
||||
"chalk": "^4.1.2",
|
||||
"jest-util": "30.3.0",
|
||||
"pretty-format": "30.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"gitHead": "efb59c2e81083f8dc941f20d6d20a3af2dc8d068"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue