123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- "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;
- }
- function calledInOrder(spies) {
- var callMap = {};
-
- var _spies = arguments.length > 1 ? arguments : spies;
- return every(_spies, checkAdjacentCalls.bind(null, callMap));
- }
- module.exports = calledInOrder;
|