4.0.0
This release is a complete rewrite of Chai as Promised's internals for better compatibility, speed, and robustness. If Chai as Promised has seemed weirdly broken in the past, it's probably fixed now.
Notable user-facing changes and fixes include:
- You can now use multiple asserters on a single promise without problems, e.g.
promise.should.have.property("foo").that.equals("bar"). - When using the
assertinterfaces, rejected promises now pass through any assertion messages in addition to the rejection reason. - Removed
.rejected.withsyntax, in favor of a new.rejectedWith. Juggling the state between the two separate asserters (.rejectedand.with) was very error-prone and didn't always work right. - Removed
.brokenalias for.rejected; nobody says that anymore. - The test to disallow jQuery “promises” has been tightened to produce less false positives. In particular, promise-stream hybrids with both
.pipeand.thenmethods should work fine, unless they duplicate the entire jQuery-“promise” interface. - Fixed
.rejectedWithon promises whose reasons are notErrorinstances (even though you should always reject withErrorinstances). - Fixed using
.rejectedWithplus.notifyon asynchronously-rejected promises.