alsatian-test/alsatian

View on GitHub
packages/alsatian/core/spying/expose-spy-functions.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { FunctionSpy } from "./function-spy";
import { ISpiedFunction, TypedFunction } from "./spied-function.i";

export function exposeSpyFunctions<T extends TypedFunction>(
    spiedFunction: ISpiedFunction<T>,
    functionSpy: FunctionSpy
) {
    // expose spy's calls on function
    (spiedFunction as any).calls = functionSpy.calls;

    // expose spy's callsWithArguments on function
    spiedFunction.callsWithArguments = functionSpy.callsWithArguments;

    // expose spy's andReturn on function
    spiedFunction.andReturn = functionSpy.andReturn.bind(functionSpy);

    // expose spy's andCall on function
    spiedFunction.andCall = functionSpy.andCall.bind(functionSpy);
}