不要怂,就是干,撸起袖子干!

Commit 7c90ba6e by Jan Aagaard Meier

Added .catch to custom event emitter

1 parent 8b0b03c8
...@@ -161,5 +161,9 @@ module.exports = (function() { ...@@ -161,5 +161,9 @@ module.exports = (function() {
}).spread(onFulfilled, onRejected) }).spread(onFulfilled, onRejected)
} }
CustomEventEmitter.prototype.catch = function(onRejected) {
return this.then(null, onRejected)
}
return CustomEventEmitter return CustomEventEmitter
})() })()
...@@ -272,39 +272,40 @@ describe(Support.getTestDialectTeaser("Promise"), function () { ...@@ -272,39 +272,40 @@ describe(Support.getTestDialectTeaser("Promise"), function () {
describe('save', function () { describe('save', function () {
it('should fail a validation upon creating', function(done) { it('should fail a validation upon creating', function(done) {
this.User.create({aNumber: 0, validateTest: 'hello'}).then(null, function(err) { this.User.create({aNumber: 0, validateTest: 'hello'})
expect(err).to.be.ok .catch(function(err) {
expect(err).to.be.an("object") expect(err).to.be.ok
expect(err.validateTest).to.be.an("array") expect(err).to.be.an("object")
expect(err.validateTest[0]).to.be.ok expect(err.validateTest).to.be.an("array")
expect(err.validateTest[0].message).to.equal('Validation isInt failed') expect(err.validateTest[0]).to.be.ok
done() expect(err.validateTest[0].message).to.equal('Validation isInt failed')
}); done()
});
}) })
it('should fail a validation upon building', function(done) { it('should fail a validation upon building', function(done) {
this.User.build({aNumber: 0, validateCustom: 'aaaaaaaaaaaaaaaaaaaaaaaaaa'}).save() this.User.build({aNumber: 0, validateCustom: 'aaaaaaaaaaaaaaaaaaaaaaaaaa'}).save()
.then(null, function(err) { .catch(function(err) {
expect(err).to.be.ok expect(err).to.be.ok
expect(err).to.be.an("object") expect(err).to.be.an("object")
expect(err.validateCustom).to.be.ok expect(err.validateCustom).to.be.ok
expect(err.validateCustom).to.be.an("array") expect(err.validateCustom).to.be.an("array")
expect(err.validateCustom[0]).to.be.ok expect(err.validateCustom[0]).to.be.ok
expect(err.validateCustom[0].message).to.equal('Length failed.') expect(err.validateCustom[0].message).to.equal('Length failed.')
done() done()
}) })
}) })
it('should fail a validation when updating', function(done) { it('should fail a validation when updating', function(done) {
this.User.create({aNumber: 0}).then(function (user) { this.User.create({aNumber: 0}).then(function (user) {
return user.updateAttributes({validateTest: 'hello'}) return user.updateAttributes({validateTest: 'hello'})
}).then(null, function(err) { }).catch(function(err) {
expect(err).to.be.ok expect(err).to.be.ok
expect(err).to.be.an("object") expect(err).to.be.an("object")
expect(err.validateTest).to.be.ok expect(err.validateTest).to.be.ok
expect(err.validateTest).to.be.an("array") expect(err.validateTest).to.be.an("array")
expect(err.validateTest[0]).to.be.ok expect(err.validateTest[0]).to.be.ok
expect(err.validateTest[0].message).to.equal('Validation isInt failed') expect(err.validateTest[0].message).to.equal('Validation isInt failed')
done() done()
}) })
}) })
...@@ -322,7 +323,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () { ...@@ -322,7 +323,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () {
expect(user.id).to.equal(1) expect(user.id).to.equal(1)
expect(arguments.length).to.equal(1) expect(arguments.length).to.equal(1)
done() done()
}) })
}) })
describe('with spread', function () { describe('with spread', function () {
...@@ -334,7 +335,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () { ...@@ -334,7 +335,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () {
expect(created).to.equal(false) expect(created).to.equal(false)
expect(arguments.length).to.equal(2) expect(arguments.length).to.equal(2)
done() done()
}) })
}) })
it('user created', function (done) { it('user created', function (done) {
this.User this.User
...@@ -344,7 +345,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () { ...@@ -344,7 +345,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () {
expect(created).to.equal(true) expect(created).to.equal(true)
expect(arguments.length).to.equal(2) expect(arguments.length).to.equal(2)
done() done()
}) })
}) })
it('works for functions with only one return value', function (done) { it('works for functions with only one return value', function (done) {
this.User this.User
...@@ -353,7 +354,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () { ...@@ -353,7 +354,7 @@ describe(Support.getTestDialectTeaser("Promise"), function () {
expect(user.id).to.equal(1) expect(user.id).to.equal(1)
expect(arguments.length).to.equal(1) expect(arguments.length).to.equal(1)
done() done()
}) })
}) })
}) })
}) })
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!