Comments (9)
.then(function () { callback(); }, function(failure) { callback(failure); });
Or just use .notify(callback)
We originally used the expect() syntax. However, this appears to return the original promise from protractor (or some variation of it)
This should not be the case. Can you produce a repro? Preferably one that does not involve external libraries like protracter?
unless an error message is specified ??? - in which case it throws an exception
This should also not be the case. Again, a repro would be quite helpful.
from chai-as-promised.
I think I have two issues in here. Should we split them?
Here's what we found on assert's throwing exceptions when error text is supplied.
// This one throws an exception.
assert.eventually.include(promise, expState, 'Custom text!')
.then(callback);
// This one does not
assert.eventually.include(promise, expState)
.then(callback);
We tracked this behavior down to these lines of code.
https://github.com/domenic/chai-as-promised/blob/master/lib/chai-as-promised.js#L349-L353
from chai-as-promised.
It does not throw an exception. It passes a rejection handler that throws, which causes the returned promise to be rejected.
What type of promises are you using? Are they Promises/A+ compliant?
from chai-as-promised.
It's webdriver (protractor).
We're trying to use chai-as-promised with cucumber.js and protractor.
from chai-as-promised.
If that throws an exception, then they are not Promises/A+ promises, and cannot be used with Chai as Promised.
from chai-as-promised.
Sounds like protractor (web driver) promises are the root of our problems. Not sure how we'll deal with that...
Thanks for the quick responses!
from chai-as-promised.
I wonder if a new major version of Chai as Promised could bundle a promise library with it, and wrap the given promises into real Promises/A+ promises. This would allow it to work with jQuery promises as well. Hmm.
This would probably require removing the UMD wrapper though and just going CommonJS.
from chai-as-promised.
In the meantime, I should (a) test to make sure the problem is as I expected; (b) if so, blacklist webdriver promises like I do jQuery promises.
from chai-as-promised.
Realized I am already tracking this as #58.
from chai-as-promised.
Related Issues (20)
- should.eventually.be.<boolean> and should.eventually.equal(<boolean>) HOT 1
- Provide browser script HOT 1
- Error: Invalid Chai property: _promise
- not compatible with chai-arrays
- expect(...).to.be.rejected always passes HOT 2
- rejectedWith when error is undefined doesn't work
- rejectedWith Deep Equals
- Implementation of to.eventually.be.pending
- Proxying makes use order matter with chai-exclude and chai-as-promised HOT 1
- node 15, eventually.throw ? HOT 2
- Printing stacktrace whenever a promise is rejected HOT 1
- Does not work well with bluebird.
- rejectedWith not checking the error message HOT 3
- Syntax Error: /node_modules/chai-as-promised/lib/chai-as-promised.js:5:1 HOT 1
- Duplicate packages detected in the chaiaspromised project on Tag: v7.1.1
- .eventually assertion doesn't fail when Error message mismatch. HOT 2
- Asserting a rejcted promise to not be rejected succeeds HOT 1
- Overloading `rejectedWith` to handle `undefined` input
- Feature request: Support for es6 modules HOT 1
- Chai v5 support HOT 13
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-as-promised.