Skip to content

Commit e8021e4

Browse files
meeberdomenic
authored andcommitted
Update for Chai v4.0
Closes #157. Closes #198.
1 parent 16dde11 commit e8021e4

File tree

4 files changed

+20
-13
lines changed

4 files changed

+20
-13
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ node_js:
44
- 4
55
- stable
66
env:
7-
# Can't figure out how to DRY this up: http://stackoverflow.com/q/22397300/3191
87
- CHAI_VERSION=^2.1.2
98
- CHAI_VERSION=^3.0.0
9+
- CHAI_VERSION=^4.0.0
1010
script:
1111
- npm run lint
1212
- npm run test-travis

lib/chai-as-promised.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ module.exports = (chai, utils) => {
101101
);
102102

103103
module.exports.transferPromiseness(this, derivedPromise);
104+
return this;
104105
});
105106

106107
property("rejected", function () {
@@ -123,6 +124,7 @@ module.exports = (chai, utils) => {
123124
);
124125

125126
module.exports.transferPromiseness(this, derivedPromise);
127+
return this;
126128
});
127129

128130
method("rejectedWith", function (errorLike, errMsgMatcher, message) {
@@ -134,9 +136,8 @@ module.exports = (chai, utils) => {
134136
if (errorLike === undefined && errMsgMatcher === undefined &&
135137
message === undefined) {
136138
/* eslint-disable no-unused-expressions */
137-
this.rejected;
139+
return this.rejected;
138140
/* eslint-enable no-unused-expressions */
139-
return;
140141
}
141142

142143
if (message !== undefined) {
@@ -220,14 +221,17 @@ module.exports = (chai, utils) => {
220221
);
221222

222223
module.exports.transferPromiseness(this, derivedPromise);
224+
return this;
223225
});
224226

225227
property("eventually", function () {
226228
utils.flag(this, "eventually", true);
229+
return this;
227230
});
228231

229232
method("notify", function (done) {
230233
doNotify(getBasePromise(this), done);
234+
return this;
231235
});
232236

233237
method("become", function (value, message) {
@@ -243,7 +247,7 @@ module.exports = (chai, utils) => {
243247

244248
methodNames.forEach(methodName => {
245249
Assertion.overwriteMethod(methodName, originalMethod => function () {
246-
doAsserterAsyncAndAddThen(originalMethod, this, arguments);
250+
return doAsserterAsyncAndAddThen(originalMethod, this, arguments);
247251
});
248252
});
249253

@@ -260,15 +264,15 @@ module.exports = (chai, utils) => {
260264
Assertion.overwriteChainableMethod(
261265
getterName,
262266
originalMethod => function () {
263-
doAsserterAsyncAndAddThen(originalMethod, this, arguments);
267+
return doAsserterAsyncAndAddThen(originalMethod, this, arguments);
264268
},
265269
originalGetter => function () {
266-
doAsserterAsyncAndAddThen(originalGetter, this);
270+
return doAsserterAsyncAndAddThen(originalGetter, this);
267271
}
268272
);
269273
} else {
270274
Assertion.overwriteProperty(getterName, originalGetter => function () {
271-
doAsserterAsyncAndAddThen(originalGetter, this);
275+
return doAsserterAsyncAndAddThen(originalGetter, this);
272276
});
273277
}
274278
});
@@ -278,7 +282,7 @@ module.exports = (chai, utils) => {
278282
// `eventually`, or if we've already fulfilled the promise (see below).
279283
if (!utils.flag(assertion, "eventually")) {
280284
asserter.apply(assertion, args);
281-
return;
285+
return assertion;
282286
}
283287

284288
const derivedPromise = getBasePromise(assertion).then(value => {
@@ -299,6 +303,7 @@ module.exports = (chai, utils) => {
299303
});
300304

301305
module.exports.transferPromiseness(assertion, derivedPromise);
306+
return assertion;
302307
}
303308

304309
// ### Now use the `Assertion` framework to build an `assert` interface.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@
3232
"eslint": "^3.19.0"
3333
},
3434
"peerDependencies": {
35-
"chai": ">= 2.1.2 < 4"
35+
"chai": ">= 2.1.2 < 5"
3636
},
3737
"devDependencies": {
38-
"chai": "^3.5.0",
38+
"chai": "^4.0.2",
3939
"coffee-script": "1.10.0",
4040
"istanbul": "0.4.5",
4141
"mocha": "^3.4.2"

test/should-eventually.coffee

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ describe "Fulfillment value assertions:", =>
4747
it ".eventually.not.deep.equal({ foo: 'bar' })", (done) =>
4848
fulfilledPromise(foo: "baz").should.eventually.not.deep.equal(foo: "bar").notify(done)
4949
return
50-
it ".eventually.have.deep.property('foo.bar')", (done) =>
51-
fulfilledPromise(foo: bar: "baz").should.eventually.have.deep.property("foo.bar", "baz").notify(done)
52-
return
5350
it ".eventually.contain('foo')", (done) =>
5451
fulfilledPromise(["foo", "bar"]).should.eventually.contain("foo").notify(done)
5552
return
@@ -72,6 +69,11 @@ describe "Fulfillment value assertions:", =>
7269
fulfilledPromise([]).should.eventually.be.an.instanceOf(Array).notify(done)
7370
return
7471

72+
if Object.prototype.should.nested
73+
it ".eventually.have.nested.property('foo.bar')", (done) =>
74+
fulfilledPromise(foo: bar: "baz").should.eventually.have.nested.property("foo.bar", "baz").notify(done)
75+
return
76+
7577
describe "Chaining:", =>
7678
it ".eventually.be.ok.and.equal(42)", (done) =>
7779
fulfilledPromise(42).should.eventually.be.ok.and.equal(42).notify(done)

0 commit comments

Comments
 (0)