Definitions for jest's each function

This commit is contained in:
Paweł Mikołajczyk
2018-06-16 14:49:15 +02:00
parent 3b8b13474e
commit dba82e8e0e
2 changed files with 111 additions and 0 deletions
+11
View File
@@ -15,6 +15,7 @@
// Bradley Ayers <https://github.com/bradleyayers>
// Jeff Lau <https://github.com/UselessPickles>
// Andrew Makarov <https://github.com/r3nya>
// Paweł Mikołajczyk <https://github.com/Miklet>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
@@ -209,6 +210,14 @@ declare namespace jest {
readonly name: string;
}
interface Each {
(cases: any[]): (name: string, fn: (...args: any[]) => any) => void;
(strings: TemplateStringsArray, ...placeholders: any[]): (
name: string,
fn: (arg: any) => any
) => void;
}
/**
* Creates a test closure
*/
@@ -227,6 +236,7 @@ declare namespace jest {
only: It;
skip: It;
concurrent: It;
each: Each;
}
interface Describe {
@@ -234,6 +244,7 @@ declare namespace jest {
(name: number | string | Function | FunctionLike, fn: EmptyFunction): void;
only: Describe;
skip: Describe;
each: Each;
}
interface MatcherUtils {
+100
View File
@@ -760,3 +760,103 @@ describe('toHaveBeenNthCalledWith', () => {
expect(fn).toHaveBeenNthCalledWith(3, "foo");
});
// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/26368
describe.each([[1, 1, 2], [1, 2, 3], [2, 1, 3]])(
".add(%i, %i)",
(a: number, b: number, expected: number) => {
test(`returns ${expected}`, () => {
expect(a + b).toBe(expected);
});
}
);
interface Case {
a: number;
b: number;
expected: number;
}
describe.each`
a | b | expected
${1} | ${1} | ${2}
${1} | ${2} | ${3}
${2} | ${1} | ${3}
`("$a + $b", ({ a, b, expected }: Case) => {
test(`returns ${expected}`, () => {
expect(a + b).toBe(expected);
});
});
describe.only.each([[1, 1, 2], [1, 2, 3], [2, 1, 3]])(
".add(%i, %i)",
(a, b, expected) => {
test(`returns ${expected}`, () => {
expect(a + b).toBe(expected);
});
}
);
describe.only.each`
a | b | expected
${1} | ${1} | ${2}
${1} | ${2} | ${3}
${2} | ${1} | ${3}
`("$a + $b", ({ a, b, expected }: Case) => {
test(`returns ${expected}`, () => {
expect(a + b).toBe(expected);
});
});
describe.skip.each([[1, 1, 2], [1, 2, 3], [2, 1, 3]])(
".add(%i, %i)",
(a, b, expected) => {
test(`returns ${expected}`, () => {
expect(a + b).toBe(expected);
});
}
);
describe.skip.each`
a | b | expected
${1} | ${1} | ${2}
${1} | ${2} | ${3}
${2} | ${1} | ${3}
`("$a + $b", ({ a, b, expected }: Case) => {
test(`returns ${expected}`, () => {
expect(a + b).toBe(expected);
});
});
test.each([[1, 1, 2], [1, 2, 3], [2, 1, 3]])(
".add(%i, %i)",
(a, b, expected) => {
expect(a + b).toBe(expected);
}
);
test.each`
a | b | expected
${1} | ${1} | ${2}
${1} | ${2} | ${3}
${2} | ${1} | ${3}
`("returns $expected when $a is added $b", ({ a, b, expected }: Case) => {
expect(a + b).toBe(expected);
});
test.only.each([[1, 1, 2], [1, 2, 3], [2, 1, 3]])(
".add(%i, %i)",
(a, b, expected) => {
expect(a + b).toBe(expected);
}
);
test.only.each`
a | b | expected
${1} | ${1} | ${2}
${1} | ${2} | ${3}
${2} | ${1} | ${3}
`("returns $expected when $a is added $b", ({ a, b, expected }: Case) => {
expect(a + b).toBe(expected);
});