mirror of
https://github.com/github/codeql-action.git
synced 2026-01-01 04:00:24 +08:00
68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
"use strict";
|
|
|
|
var push = require("@sinonjs/commons").prototypes.array.push;
|
|
|
|
exports.incrementCallCount = function incrementCallCount(proxy) {
|
|
proxy.called = true;
|
|
proxy.callCount += 1;
|
|
proxy.notCalled = false;
|
|
proxy.calledOnce = proxy.callCount === 1;
|
|
proxy.calledTwice = proxy.callCount === 2;
|
|
proxy.calledThrice = proxy.callCount === 3;
|
|
};
|
|
|
|
exports.createCallProperties = function createCallProperties(proxy) {
|
|
proxy.firstCall = proxy.getCall(0);
|
|
proxy.secondCall = proxy.getCall(1);
|
|
proxy.thirdCall = proxy.getCall(2);
|
|
proxy.lastCall = proxy.getCall(proxy.callCount - 1);
|
|
};
|
|
|
|
exports.delegateToCalls = function delegateToCalls(
|
|
proxy,
|
|
method,
|
|
matchAny,
|
|
actual,
|
|
returnsValues,
|
|
notCalled,
|
|
totalCallCount
|
|
) {
|
|
proxy[method] = function () {
|
|
if (!this.called) {
|
|
if (notCalled) {
|
|
return notCalled.apply(this, arguments);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
if (totalCallCount !== undefined && this.callCount !== totalCallCount) {
|
|
return false;
|
|
}
|
|
|
|
var currentCall;
|
|
var matches = 0;
|
|
var returnValues = [];
|
|
|
|
for (var i = 0, l = this.callCount; i < l; i += 1) {
|
|
currentCall = this.getCall(i);
|
|
var returnValue = currentCall[actual || method].apply(
|
|
currentCall,
|
|
arguments
|
|
);
|
|
push(returnValues, returnValue);
|
|
if (returnValue) {
|
|
matches += 1;
|
|
|
|
if (matchAny) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (returnsValues) {
|
|
return returnValues;
|
|
}
|
|
return matches === this.callCount;
|
|
};
|
|
};
|