Comments (8)
1.0.0 released! Hooray!
from chai-spies.
This seems to be an expected behavior of the actual algorithm that checks the call argument. If this is true, I can add the fix to my fork and send the pull request if, of course, other contributors agree.
I'll soon take a look again to the algorithm and come back to you.
After taking a look again to the algorithm and the tests, this should actually work.
Chai Spies
.with(arg, ...)
√ checks spy calls with repeating params (89ms)
There may be another factor acting within this issue.
from chai-spies.
You need to use with.exactly
which will check order of args.
Please close issue if that works for you
from chai-spies.
Thanks, using .with.exactly(1, 1)
worked here, though I consider it a workaround rather than a solution of issue.
I still can't understand why .with
assertion can't handle repeating params:
it('checks spy calls with unique params', () => {
const object = {};
const fooFunction = chai.spy.on(object, 'foo');
object.foo(1, 2, 3);
chai.expect(fooFunction).to.have.been.called.with(2);
});
it('checks spy calls with repeating params', () => {
const object = {};
const fooFunction = chai.spy.on(object, 'foo');
object.foo(1, 2, 2);
chai.expect(fooFunction).to.have.been.called.with(2);
});
Second test fails while first one passes which isn't the obvious behavior IMHO. Yes I could use .with.exactly
and check order of all three args, but I think the order isn't significant if I just want to check if number 2 appeared among function args.
from chai-spies.
@olebokolo I would expect the tests in your original comment to pass. You say you have a patch? Please do send this over! with
should handle repeating params.
from chai-spies.
I guess similar fix was added in e13621b
from chai-spies.
Yup! Looks like it. Let's cut a release now and @olebokolo can try and reproduce with chai spies 1.0.0
from chai-spies.
Works as expected with 1.0.0 👍
Thanks everybody
from chai-spies.
Related Issues (20)
- Expect nested method to have been called
- ChaiSpies with Chai As Promiesed w/o using Timeout HOT 3
- TypeError: Cannot use 'in' operator to search for 'Date' in global HOT 1
- Bring back spy.reset() HOT 6
- export spy function as names export from chai-spies HOT 1
- An in-range update of mocha is breaking the build 🚨 HOT 16
- Restoring issue HOT 4
- Module '"chai-spies"' has no exported member 'spies'. HOT 3
- Incorrect type definitions for `spy.interface` HOT 1
- Feature: called with reports actual arguments
- `spy.on` doesn't work with nullish prototype
- expect(...).to.have.been.called.once is not a function HOT 2
- chai-spies.js needs a rebuild on master HOT 9
- to.have.been.called.with() throws an error HOT 3
- Switch logicalparadox refs to chaijs HOT 4
- expect(spy).to.have.been.called.with always true HOT 6
- An in-range update of mocha is breaking the build 🚨 HOT 3
- An in-range update of rollup-plugin-commonjs is breaking the build 🚨 HOT 4
- Cannot attach spy on the same function more than once HOT 2
- spy.interface documentation appears to be wrong HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chai-spies.