@assertive-ts/sinon
Version:
Assertive.ts plugin for Sinon assertions
42 lines • 1.28 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.SinonPlugin = void 0;
const SinonSpyAssertion_1 = require("./lib/SinonSpyAssertion");
const SinonSpyCallAssertion_1 = require("./lib/SinonSpyCallAssertion");
function isSinonSpy(actual) {
return typeof actual === "function"
&& "getCall" in actual
&& typeof actual.getCall === "function";
}
function isSinonSpyCall(actual) {
if (typeof actual === "object" && actual !== null) {
const hasProxy = "proxy" in actual
&& typeof actual.proxy === "object"
&& actual.proxy !== null
&& "isSinonProxy" in actual.proxy
&& actual.proxy.isSinonProxy;
return hasProxy
? isSinonSpyCall(actual.proxy)
: isSinonSpy(actual);
}
return false;
}
function sinonSpyPlugin() {
return {
Assertion: SinonSpyAssertion_1.SinonSpyAssertion,
insertAt: "top",
predicate: isSinonSpy,
};
}
function sinonSpyCallPlugin() {
return {
Assertion: SinonSpyCallAssertion_1.SinonSpyCallAssertion,
insertAt: "top",
predicate: isSinonSpyCall,
};
}
exports.SinonPlugin = [
sinonSpyPlugin(),
sinonSpyCallPlugin(),
];
//# sourceMappingURL=main.js.map
;