mirror of
https://github.com/status-im/metro.git
synced 2025-01-12 03:54:21 +00:00
5fdef3bdb2
Summary: I'm working on getting CI to pass. As a first step, I'll upgrade the lerna setup to use Yarn's workspaces (when yarn is run from the Metro root) as well as upgrading Flow to the same version we use in xplat. I also copied over the Jest type definitions. This should fix all type errors for a start. Reviewed By: davidaurelio Differential Revision: D6361276 fbshipit-source-id: 4e8661b7d5fe4e3f6dd1e6923891bd2d23c9b4db
161 lines
4.6 KiB
JavaScript
161 lines
4.6 KiB
JavaScript
/**
|
|
* Copyright 2004-present Facebook. All Rights Reserved.
|
|
*
|
|
* 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
|
|
*/
|
|
|
|
/* eslint-disable no-unclear-flowtypes */
|
|
|
|
'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 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,
|
|
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,
|
|
isMockFunction(fn: Function): boolean,
|
|
genMockFromModule(moduleName: string): any,
|
|
mock(moduleName: string, moduleFactory?: any): Jest,
|
|
resetModuleRegistry(): Jest, // undocumented alias for resetModuleRegistry
|
|
resetModules(): 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,
|
|
};
|