UNPKG

soda-test

Version:

Package for Unit and API tests

120 lines (119 loc) 3.62 kB
import { FakeTimerInstallOpts } from '@sinonjs/fake-timers'; import { targetType, anyFunction } from './executables'; import { factoryMethod } from './testCase'; export type valFunction = () => unknown | Promise<unknown>; export type extraInfo = { [key: string]: string | number; }; export interface ControlMethods { beforeInner?: valFunction[]; beforeLast?: valFunction; afterFirst?: valFunction; afterInner?: valFunction[]; beforeEachInner?: valFunction[]; beforeEachLast?: valFunction; afterEachFirst?: valFunction; afterEachInner?: valFunction[]; } export declare enum SinonKind { Spy = 0, Stub = 1, Rewire = 2, RewireReload = 3, Import = 4, Timers = 5, Fixture = 6, Component = 7 } export declare enum SetStubType { None = 0, Fake = 1, Return = 2, Resolve = 3, Reject = 4, Access = 5, Construct = 6 } export interface SinonInfo { caller: string; target: targetType | string; method?: string; memberMethod?: string; kind: SinonKind; setStub?: { type: SetStubType; value: unknown; }; timersConfig?: number | Date | Partial<FakeTimerInstallOpts>; context: string; global?: boolean; } export declare class commentInfo { commentText: string; extraData?: extraInfo; } export declare class ItInfo { comments?: commentInfo[]; itText: string; instanceIndex?: number; pending: boolean; extraData?: extraInfo; sinons: { [paramterIndex: number]: SinonInfo; }; method: anyFunction; } export declare class CaseInfo { stepsFactory: factoryMethod; constructor(text: string, stepsFactory: factoryMethod); caseText: string; extraData?: extraInfo; its: ItInfo[]; instances: unknown[]; } export declare class ContextInfo { constructor(text: string); contextText: string; extraData?: extraInfo; contextControlMethods: ControlMethods; itsAndCases: { [text: string]: ItInfo | CaseInfo; }; } export declare class DescribeInfo { describeText: string; extraData?: extraInfo; currentContext: string; contexts: { [text: string]: ContextInfo; }; methodsContexts: { [methodName: string]: string; }; uncontext: ContextInfo; sandboxes: string[]; sinons: { [memberName: string]: SinonInfo; }; lastSinon: { name: string; sinon: SinonInfo; }; lastControlMethod: { name: string; context: string; controlName: string; }; getContext(contextName: string): ContextInfo; setMethodContext(methodName: string, contextName?: string, contextExtraData?: extraInfo): void; setMemberContext(memberName: string, contextName: string, extraData: extraInfo): void; getIt(methodName: string): ItInfo; getCase(methodName: string, text: string, stepsFactory: factoryMethod): CaseInfo; setIt(methodName: string, itText: string, itMethod: anyFunction, extraData?: extraInfo): void; setComment(methodName: string, commentText: string, extraData?: extraInfo): void; setCase(methodName: string, caseText: string, instanceConstructor: factoryMethod): CaseInfo; setPending(methodName: string): void; addSinon(propertyKey: string, parameterIndex: number | undefined, sinon: SinonInfo): void; getSinon(propertyKey: string, parameterIndex: number | undefined): SinonInfo; } export declare function getInfo(target: targetType): DescribeInfo;