forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Open source Flow definition for Jest
Reviewed By: sahrens Differential Revision: D8347198 fbshipit-source-id: 0b6194bfd14bad09db7dcd462f0bf342c9c6fe44
- Loading branch information
1 parent
3bed272
commit 4aeefa5
Showing
1 changed file
with
179 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,179 @@ | ||
/** | ||
* Copyright (c) 2004-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
* | ||
* Modified from https://raw.githubusercontent.com/flowtype/flow-typed/e3b0f3034929e0f0fb85c790450a201b380ac2fd/definitions/npm/jest_v17.x.x/flow_v0.33.x-/jest_v17.x.x.js | ||
* Duplicated from www/flow/shared/jest.js | ||
* @flow | ||
* @format | ||
*/ | ||
|
||
'use strict'; | ||
|
||
type JestMockFn = { | ||
(...args: Array<any>): any, | ||
mock: { | ||
calls: Array<Array<any>>, | ||
instances: mixed, | ||
}, | ||
mockClear(): Function, | ||
mockReset(): Function, | ||
mockImplementation(fn: Function): JestMockFn, | ||
mockImplementationOnce(fn: Function): JestMockFn, | ||
mockReturnThis(): void, | ||
mockReturnValue(value: any): JestMockFn, | ||
mockReturnValueOnce(value: any): JestMockFn, | ||
}; | ||
|
||
type JestAsymmetricEqualityType = { | ||
asymmetricMatch(value: mixed): boolean, | ||
}; | ||
|
||
type JestCallsType = { | ||
allArgs(): mixed, | ||
all(): mixed, | ||
any(): boolean, | ||
count(): number, | ||
first(): mixed, | ||
mostRecent(): mixed, | ||
reset(): void, | ||
}; | ||
|
||
type JestClockType = { | ||
install(): void, | ||
mockDate(date: Date): void, | ||
tick(): void, | ||
uninstall(): void, | ||
}; | ||
|
||
type JestMatcherResult = { | ||
message?: string | (() => string), | ||
pass: boolean, | ||
}; | ||
|
||
type JestMatcher = (actual: any, expected: any) => JestMatcherResult; | ||
|
||
type JestPromiseType = { | ||
/** | ||
* Use rejects to unwrap the reason of a rejected promise so any other | ||
* matcher can be chained. If the promise is fulfilled the assertion fails. | ||
*/ | ||
rejects: JestExpectType, | ||
/** | ||
* Use resolves to unwrap the value of a fulfilled promise so any other | ||
* matcher can be chained. If the promise is rejected the assertion fails. | ||
*/ | ||
resolves: JestExpectType, | ||
}; | ||
|
||
type JestExpectType = { | ||
not: JestExpectType, | ||
lastCalledWith(...args: Array<any>): void, | ||
toBe(value: any): void, | ||
toBeCalled(): void, | ||
toBeCalledWith(...args: Array<any>): void, | ||
toBeCloseTo(num: number, delta: any): void, | ||
toBeDefined(): void, | ||
toBeFalsy(): void, | ||
toBeGreaterThan(number: number): void, | ||
toBeGreaterThanOrEqual(number: number): void, | ||
toBeLessThan(number: number): void, | ||
toBeLessThanOrEqual(number: number): void, | ||
toBeInstanceOf(cls: Class<*>): void, | ||
toBeNull(): void, | ||
toBeTruthy(): void, | ||
toBeUndefined(): void, | ||
toContain(item: any): void, | ||
toContainEqual(item: any): void, | ||
toEqual(value: any): void, | ||
toHaveBeenCalled(): void, | ||
toHaveBeenCalledTimes(number: number): void, | ||
toHaveBeenCalledWith(...args: Array<any>): void, | ||
toHaveProperty(path: string, value?: any): void, | ||
toMatch(regexp: RegExp): void, | ||
toMatchObject(object: Object): void, | ||
toMatchSnapshot(): void, | ||
toThrow(message?: string | Error | Class<Error>): void, | ||
toThrowError(message?: string | Error | Class<Error> | RegExp): void, | ||
toThrowErrorMatchingSnapshot(): void, | ||
}; | ||
|
||
type JestSpyType = { | ||
calls: JestCallsType, | ||
}; | ||
|
||
declare function afterEach(fn: Function): void; | ||
declare function beforeEach(fn: Function): void; | ||
declare function afterAll(fn: Function): void; | ||
declare function beforeAll(fn: Function): void; | ||
declare function describe(name: string, fn: Function): void; | ||
declare var it: { | ||
(name: string, fn: Function): ?Promise<void>, | ||
only(name: string, fn: Function): ?Promise<void>, | ||
skip(name: string, fn: Function): ?Promise<void>, | ||
}; | ||
declare function fit(name: string, fn: Function): ?Promise<void>; | ||
declare function pit(name: string, fn: () => Promise<any>): Promise<void>; | ||
declare var test: typeof it; | ||
declare var xdescribe: typeof describe; | ||
declare var fdescribe: typeof describe; | ||
declare var xit: typeof it; | ||
declare var xtest: typeof it; | ||
|
||
declare var expect: { | ||
(value: any): JestExpectType & JestPromiseType, | ||
any: any, | ||
extend(matchers: {[name: string]: JestMatcher}): void, | ||
objectContaining(any): void, | ||
}; | ||
declare function fail(message?: string): void; | ||
|
||
// TODO handle return type | ||
// http://jasmine.github.io/2.4/introduction.html#section-Spies | ||
declare function spyOn(value: mixed, method: string): Object; | ||
|
||
type Jest = { | ||
autoMockOff(): Jest, | ||
autoMockOn(): Jest, | ||
resetAllMocks(): Jest, | ||
clearAllTimers(): void, | ||
currentTestPath(): void, | ||
disableAutomock(): Jest, | ||
doMock(moduleName: string, moduleFactory?: any): void, | ||
dontMock(moduleName: string): Jest, | ||
enableAutomock(): Jest, | ||
fn(implementation?: Function): JestMockFn, | ||
genMockFromModule(moduleName: string): any, | ||
isMockFunction(fn: Function): boolean, | ||
mock( | ||
moduleName: string, | ||
moduleFactory?: any, | ||
options?: {virtual?: boolean}, | ||
): Jest, | ||
resetModuleRegistry(): Jest, // undocumented alias for resetModuleRegistry | ||
resetModules(): Jest, | ||
restoreAllMocks(): Jest, | ||
runAllTicks(): Jest, | ||
runAllTimers(): Jest, | ||
runTimersToTime(msToRun: number): Jest, | ||
runOnlyPendingTimers(): Jest, | ||
setMock(moduleName: string, moduleExports: any): Jest, | ||
unmock(moduleName: string): Jest, | ||
useFakeTimers(): Jest, | ||
useRealTimers(): Jest, | ||
}; | ||
|
||
declare var jest: Jest; | ||
|
||
declare var jasmine: { | ||
DEFAULT_TIMEOUT_INTERVAL: number, | ||
any(value: mixed): JestAsymmetricEqualityType, | ||
anything(): void, | ||
arrayContaining(value: Array<mixed>): void, | ||
clock(): JestClockType, | ||
createSpy(name: string): JestSpyType, | ||
objectContaining(value: Object): void, | ||
stringMatching(value: string): void, | ||
}; |