|
123456789101112131415161718192021222324252627282930313233343536 |
- "use strict";
-
- var sort = require("./prototypes/array").sort;
- var slice = require("./prototypes/array").slice;
-
- /**
- * @private
- */
- function comparator(a, b) {
- // uuid, won't ever be equal
- var aCall = a.getCall(0);
- var bCall = b.getCall(0);
- var aId = (aCall && aCall.callId) || -1;
- var bId = (bCall && bCall.callId) || -1;
-
- return aId < bId ? -1 : 1;
- }
-
- /**
- * A Sinon proxy object (fake, spy, stub)
- *
- * @typedef {object} SinonProxy
- * @property {Function} getCall - A method that can return the first call
- */
-
- /**
- * Sorts an array of SinonProxy instances (fake, spy, stub) by their first call
- *
- * @param {SinonProxy[] | SinonProxy} spies
- * @returns {SinonProxy[]}
- */
- function orderByFirstCall(spies) {
- return sort(slice(spies), comparator);
- }
-
- module.exports = orderByFirstCall;
|