soda-test
Version:
Package for Unit and API tests
120 lines (119 loc) • 3.62 kB
TypeScript
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;