forked from jestjs/jest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMatchers.js
82 lines (73 loc) · 2.22 KB
/
Matchers.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
import type {Path} from 'types/Config';
import type {SnapshotState} from 'jest-snapshot';
export type SyncExpectationResult = {
pass: boolean,
message: () => string,
};
export type AsyncExpectationResult = Promise<SyncExpectationResult>;
export type ExpectationResult = SyncExpectationResult | AsyncExpectationResult;
export type RawMatcherFn = (
expected: any,
actual: any,
options: any,
) => ExpectationResult;
export type ThrowingMatcherFn = (actual: any) => void;
export type PromiseMatcherFn = (actual: any) => Promise<void>;
export type MatcherState = {
assertionCalls: number,
currentTestName?: string,
error?: Error,
equals: (any, any, ?Array<any>) => boolean,
expand?: boolean,
expectedAssertionsNumber: ?number,
isExpectingAssertions: ?boolean,
isNot: boolean,
snapshotState: SnapshotState,
suppressedErrors: Array<Error>,
testPath?: Path,
utils: Object,
};
export type AsymmetricMatcher = Object;
export type MatchersObject = {[id: string]: RawMatcherFn};
export type Expect = {
(expected: any): ExpectationObject,
addSnapshotSerializer(any): void,
assertions(number): void,
extend(any): void,
extractExpectedAssertionsErrors: () => Array<{
actual: string | number,
error: Error,
expected: string,
}>,
getState(): MatcherState,
hasAssertions(): void,
setState(Object): void,
any(expectedObject: any): AsymmetricMatcher,
anything(): AsymmetricMatcher,
arrayContaining(sample: Array<any>): AsymmetricMatcher,
objectContaining(sample: Object): AsymmetricMatcher,
stringContaining(expected: string): AsymmetricMatcher,
stringMatching(expected: string | RegExp): AsymmetricMatcher,
[id: string]: AsymmetricMatcher,
not: {[id: string]: AsymmetricMatcher},
};
export type ExpectationObject = {
[id: string]: ThrowingMatcherFn,
resolves: {
[id: string]: PromiseMatcherFn,
not: {[id: string]: PromiseMatcherFn},
},
rejects: {
[id: string]: PromiseMatcherFn,
not: {[id: string]: PromiseMatcherFn},
},
not: {[id: string]: ThrowingMatcherFn},
};