Skip to content

Commit

Permalink
Internalize spy.matches
Browse files Browse the repository at this point in the history
  • Loading branch information
mantoni committed Oct 19, 2019
1 parent cd4f6d0 commit 5125604
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions lib/sinon/spy.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ var filter = Array.prototype.filter;

var uuid = 0;

function matches(fake, args, strict) {
var margs = fake.matchingArguments;
if (margs.length <= args.length && deepEqual(slice(args, 0, margs.length), margs)) {
return !strict || margs.length === args.length;
}
return false;
}

// Public API
var spyApi = {
formatters: require("./spy-formatters"),
Expand All @@ -44,7 +52,7 @@ var spyApi = {
};

forEach(original.args, function(arg, i) {
if (!fake.matches(arg)) {
if (!matches(fake, arg)) {
return;
}

Expand All @@ -64,20 +72,10 @@ var spyApi = {
// Override proxy default implementation
matchingFakes: function(args, strict) {
return filter.call(this.fakes, function(fake) {
return fake.matches(args, strict);
return matches(fake, args, strict);
});
},

matches: function(args, strict) {
var margs = this.matchingArguments;

if (margs.length <= args.length && deepEqual(slice(args, 0, margs.length), margs)) {
return !strict || margs.length === args.length;
}

return undefined;
},

printf: function(format) {
var spyInstance = this;
var args = slice(arguments, 1);
Expand Down

0 comments on commit 5125604

Please sign in to comment.