aboutsummaryrefslogtreecommitdiff
path: root/node_modules/ava/index.js.flow
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/ava/index.js.flow')
-rw-r--r--node_modules/ava/index.js.flow201
1 files changed, 201 insertions, 0 deletions
diff --git a/node_modules/ava/index.js.flow b/node_modules/ava/index.js.flow
new file mode 100644
index 000000000..38670fc39
--- /dev/null
+++ b/node_modules/ava/index.js.flow
@@ -0,0 +1,201 @@
+/* @flow */
+
+/**
+ * Misc Setup Types
+ */
+
+type PromiseLike<R> = {
+ then<U>(
+ onFulfill?: (value: R) => Promise<U> | U,
+ onReject?: (error: any) => Promise<U> | U
+ ): Promise<U>;
+}
+
+type ObservableLike = {
+ subscribe(observer: (value: {}) => void): void;
+};
+
+type SpecialReturnTypes =
+ | PromiseLike<any>
+ | Iterator<any>
+ | ObservableLike;
+
+type Constructor = Class<{
+ constructor(...args: Array<any>): any
+}>;
+
+type ErrorValidator =
+ | Constructor
+ | RegExp
+ | string
+ | ((error: any) => boolean);
+
+/**
+ * Assertion Types
+ */
+
+type AssertContext = {
+ // Passing assertion.
+ pass(message?: string): void;
+ // Failing assertion.
+ fail(message?: string): void;
+ // Assert that value is truthy.
+ truthy(value: mixed, message?: string): void;
+ // Assert that value is falsy.
+ falsy(value: mixed, message?: string): void;
+ // Assert that value is true.
+ true(value: mixed, message?: string): void;
+ // Assert that value is false.
+ false(value: mixed, message?: string): void;
+ // Assert that value is equal to expected.
+ is<U>(value: U, expected: U, message?: string): void;
+ // Assert that value is not equal to expected.
+ not<U>(value: U, expected: U, message?: string): void;
+ // Assert that value is deep equal to expected.
+ deepEqual<U>(value: U, expected: U, message?: string): void;
+ // Assert that value is not deep equal to expected.
+ notDeepEqual<U>(value: U, expected: U, message?: string): void;
+ // Assert that function throws an error or promise rejects.
+ // @param error Can be a constructor, regex, error message or validation function.
+ throws: {
+ (value: PromiseLike<mixed>, error?: ErrorValidator, message?: string): Promise<Error>;
+ (value: () => mixed, error?: ErrorValidator, message?: string): Error;
+ };
+ // Assert that function doesn't throw an error or promise resolves.
+ notThrows: {
+ (value: PromiseLike<mixed>, message?: string): Promise<void>;
+ (value: () => mixed, message?: string): void;
+ };
+ // Assert that contents matches regex.
+ regex(contents: string, regex: RegExp, message?: string): void;
+ // Assert that contents matches a snapshot.
+ snapshot(contents: any, message?: string): void;
+ // Assert that contents does not match regex.
+ notRegex(contents: string, regex: RegExp, message?: string): void;
+ // Assert that error is falsy.
+ ifError(error: any, message?: string): void;
+};
+
+/**
+ * Context Types
+ */
+
+type TestContext = AssertContext & {
+ plan(count: number): void;
+ skip: AssertContext;
+};
+type CallbackTestContext = TestContext & { end(): void; };
+type ContextualTestContext = TestContext & { context: any; };
+type ContextualCallbackTestContext = CallbackTestContext & { context: any; };
+
+/**
+ * Test Implementations
+ */
+
+type TestFunction<T, R> = {
+ (t: T, ...args: Array<any>): R;
+ title?: (providedTitle: string, ...args: Array<any>) => string;
+};
+
+type TestImplementation<T, R> =
+ | TestFunction<T, R>
+ | Array<TestFunction<T, R>>;
+
+type Test = TestImplementation<TestContext, SpecialReturnTypes | void>;
+type CallbackTest = TestImplementation<CallbackTestContext, void>;
+type ContextualTest = TestImplementation<ContextualTestContext, SpecialReturnTypes | void>;
+type ContextualCallbackTest = TestImplementation<ContextualCallbackTestContext, void>;
+
+
+/**
+ * Method Types
+ */
+
+type TestMethod = {
+ ( implementation: Test): void;
+ (name: string, implementation: Test): void;
+
+ serial : TestMethod;
+ before : TestMethod;
+ after : TestMethod;
+ skip : TestMethod;
+ todo : TestMethod;
+ failing : TestMethod;
+ only : TestMethod;
+ beforeEach : TestMethod;
+ afterEach : TestMethod;
+ cb : CallbackTestMethod;
+ always : TestMethod;
+};
+
+type CallbackTestMethod = {
+ ( implementation: CallbackTest): void;
+ (name: string, implementation: CallbackTest): void;
+
+ serial : CallbackTestMethod;
+ before : CallbackTestMethod;
+ after : CallbackTestMethod;
+ skip : CallbackTestMethod;
+ todo : CallbackTestMethod;
+ failing : CallbackTestMethod;
+ only : CallbackTestMethod;
+ beforeEach : CallbackTestMethod;
+ afterEach : CallbackTestMethod;
+ cb : CallbackTestMethod;
+ always : CallbackTestMethod;
+};
+
+type ContextualTestMethod = {
+ ( implementation: ContextualTest): void;
+ (name: string, implementation: ContextualTest): void;
+
+ serial : ContextualTestMethod;
+ before : ContextualTestMethod;
+ after : ContextualTestMethod;
+ skip : ContextualTestMethod;
+ todo : ContextualTestMethod;
+ failing : ContextualTestMethod;
+ only : ContextualTestMethod;
+ beforeEach : ContextualTestMethod;
+ afterEach : ContextualTestMethod;
+ cb : ContextualCallbackTestMethod;
+ always : ContextualTestMethod;
+};
+
+type ContextualCallbackTestMethod = {
+ ( implementation: ContextualCallbackTest): void;
+ (name: string, implementation: ContextualCallbackTest): void;
+
+ serial : ContextualCallbackTestMethod;
+ before : ContextualCallbackTestMethod;
+ after : ContextualCallbackTestMethod;
+ skip : ContextualCallbackTestMethod;
+ todo : ContextualCallbackTestMethod;
+ failing : ContextualCallbackTestMethod;
+ only : ContextualCallbackTestMethod;
+ beforeEach : ContextualCallbackTestMethod;
+ afterEach : ContextualCallbackTestMethod;
+ cb : ContextualCallbackTestMethod;
+ always : ContextualCallbackTestMethod;
+};
+
+/**
+ * Public API
+ */
+
+declare module.exports: {
+ ( run: ContextualTest): void;
+ (name: string, run: ContextualTest): void;
+
+ beforeEach : ContextualTestMethod;
+ afterEach : ContextualTestMethod;
+ serial : ContextualTestMethod;
+ before : ContextualTestMethod;
+ after : ContextualTestMethod;
+ skip : ContextualTestMethod;
+ todo : ContextualTestMethod;
+ failing : ContextualTestMethod;
+ only : ContextualTestMethod;
+ cb : ContextualCallbackTestMethod;
+ always : ContextualTestMethod;
+};