UNPKG

@prisma/sdk

Version:
101 lines (100 loc) 6 kB
/// <reference types="jest" /> import type { ExecaChildProcess } from 'execa'; import type { FSJetpack } from 'fs-jetpack/types'; /** * Base test context. */ declare type BaseContext = { tmpDir: string; fs: FSJetpack; mocked: { cwd: string; }; /** * Set up the temporary directory based on the contents of some fixture. */ fixture: (name: string) => void; /** * Spawn the Prisma cli using the temporary directory as the CWD. * * @remarks * * For this to work the source must be built */ cli: (...input: string[]) => ExecaChildProcess<string>; }; /** * Create test context to use in tests. Provides the following: * * - A temporary directory * - an fs-jetpack instance bound to the temporary directory * - Mocked process.cwd via Node process.chdir * - Fixture loader for boostrapping the temporary directory with content */ export declare const jestContext: { new: (ctx?: BaseContext) => { add<NewContext>(contextContributor: ContextContributor<BaseContext, NewContext>): { add<NewContext_1>(contextContributor: ContextContributor<BaseContext & NewContext, NewContext_1>): { add<NewContext_2>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1, NewContext_2>): { add<NewContext_3>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2, NewContext_3>): { add<NewContext_4>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3, NewContext_4>): { add<NewContext_5>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4, NewContext_5>): { add<NewContext_6>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5, NewContext_6>): { add<NewContext_7>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6, NewContext_7>): { add<NewContext_8>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6 & NewContext_7, NewContext_8>): { add<NewContext_9>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6 & NewContext_7 & NewContext_8, NewContext_9>): { add<NewContext_10>(contextContributor: ContextContributor<BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6 & NewContext_7 & NewContext_8 & NewContext_9, NewContext_10>): any; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6 & NewContext_7 & NewContext_8 & NewContext_9; }; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6 & NewContext_7 & NewContext_8; }; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6 & NewContext_7; }; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5 & NewContext_6; }; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4 & NewContext_5; }; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3 & NewContext_4; }; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2 & NewContext_3; }; assemble(): BaseContext & NewContext & NewContext_1 & NewContext_2; }; assemble(): BaseContext & NewContext & NewContext_1; }; assemble(): BaseContext & NewContext; }; assemble(): BaseContext; }; }; /** * Factory for creating a context contributor possibly configured in some special way. */ declare type ContextContributorFactory<Settings, Context, NewContext> = Settings extends {} ? () => ContextContributor<Context, NewContext> : (settings: Settings) => ContextContributor<Context, NewContext>; /** * A function that provides additional test context. */ declare type ContextContributor<Context, NewContext> = (ctx: Context) => Context & NewContext; /** * Test context contributor. Mocks console.error with a Jest spy before each test. */ declare type ConsoleContext = { mocked: { 'console.error': jest.SpyInstance; 'console.log': jest.SpyInstance; 'console.info': jest.SpyInstance; 'console.warn': jest.SpyInstance; }; }; export declare const jestConsoleContext: ContextContributorFactory<{}, BaseContext, ConsoleContext>; /** * Test context contributor. Mocks process.std(out|err).write with a Jest spy before each test. */ declare type ProcessContext = { mocked: { 'process.stderr.write': jest.SpyInstance; 'process.stdout.write': jest.SpyInstance; }; }; export declare const jestProcessContext: ContextContributorFactory<{}, BaseContext, ProcessContext>; export {};