ts-stubber - v1.0.19 / Exports
ts-stubber - v1.0.19
Table of contents
Type Aliases
Functions
Type Aliases
StubbedInstance
Ƭ StubbedInstance\<T, StubT>: { [P in keyof T]: StubbedMember\<T[P], StubT> }
Type parameters
| Name |
|---|
T |
StubT |
StubbedMember
Ƭ StubbedMember\<T, StubT>: T extends (...args: infer TArgs) => infer TReturnValue ? StubT : T
Replaces a type with a stub if it's a function.
Type parameters
| Name |
|---|
T |
StubT |
Functions
StubbedInstanceCreator
▸ StubbedInstanceCreator\<T, StubT>(createStub): Object
Type parameters
| Name |
|---|
T |
StubT |
Parameters
| Name | Type | Description |
|---|---|---|
createStub |
(prop: string) => StubT |
method for stub creation, for example: sinon.stub() |
Returns
Object
a stub creator object with a single method: createStubbedInstance
| Name | Type |
|---|---|
createStubbedInstance |
(overrides?: Partial\<T>) => StubbedInstance\<T, StubT> & T |
createStubbedInstance: (overrides?: Partial\<T>) => StubbedInstance\<T, StubT> & T
-
Example
class MyClass {
constructor(input: number) {
throw new Error("Should not be called");
}
func(input: number, text: string) {
console.log(text);
return input;
}
property: number = 3;
optionalProperty?: number;
get getter(): number {
return this.property;
}
set setter(value: number) {
throw new Error("Should not be called");
}
}
const sinonStubbedInstanceCreator = StubbedInstanceCreator<MyClass, SinonStub>(
() => sinon.stub()
);
const sinonMockMyClass = sinonStubbedInstanceCreator.createStubbedInstance();
const jestStubbedInstanceCreator = StubbedInstanceCreator<MyClass, jest.Mock>(
() => jest.fn()
);
const jestMockMyClass = jestStubbedInstanceCreator.createStubbedInstance();