12345678910111213141516171819202122232425262728293031323334 |
- "use strict";
- var every = require("./prototypes/array").every;
- function hasCallsLeft(callMap, spy) {
- if (callMap[spy.id] === undefined) {
- callMap[spy.id] = 0;
- }
- return callMap[spy.id] < spy.callCount;
- }
- function checkAdjacentCalls(callMap, spy, index, spies) {
- var calledBeforeNext = true;
- if (index !== spies.length - 1) {
- calledBeforeNext = spy.calledBefore(spies[index + 1]);
- }
- if (hasCallsLeft(callMap, spy) && calledBeforeNext) {
- callMap[spy.id] += 1;
- return true;
- }
- return false;
- }
- module.exports = function calledInOrder(spies) {
- var callMap = {};
- // eslint-disable-next-line no-underscore-dangle
- var _spies = arguments.length > 1 ? arguments : spies;
- return every(_spies, checkAdjacentCalls.bind(null, callMap));
- };
|