test: fail on error instead of crash
If the supertest request fails its basic assertions, there may not even be a body to perform checks against, so bail early when possible.
This commit is contained in:
parent
c317204c74
commit
ef9ad587c8
|
@ -91,6 +91,7 @@ describe('relations - integration', function() {
|
|||
this.get(url)
|
||||
.query({'filter': {'include' : 'pictures'}})
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
// console.log(res.body);
|
||||
expect(res.body.name).to.be.equal('Reader 1');
|
||||
expect(res.body.pictures).to.be.eql([
|
||||
|
@ -106,6 +107,7 @@ describe('relations - integration', function() {
|
|||
this.get(url)
|
||||
.query({'filter': {'include' : 'imageable'}})
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
// console.log(res.body);
|
||||
expect(res.body[0].name).to.be.equal('Picture 1');
|
||||
expect(res.body[1].name).to.be.equal('Picture 2');
|
||||
|
@ -119,6 +121,7 @@ describe('relations - integration', function() {
|
|||
this.get(url)
|
||||
.query({'filter': {'include' : {'relation': 'imageable', 'scope': { 'include' : 'team'}}}})
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body[0].name).to.be.equal('Picture 1');
|
||||
expect(res.body[1].name).to.be.equal('Picture 2');
|
||||
expect(res.body[0].imageable.name).to.be.eql('Reader 1');
|
||||
|
@ -133,6 +136,7 @@ describe('relations - integration', function() {
|
|||
it('should invoke scoped methods remotely', function(done) {
|
||||
this.get('/api/stores/superStores')
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.array;
|
||||
done();
|
||||
});
|
||||
|
@ -369,7 +373,7 @@ describe('relations - integration', function() {
|
|||
self.url = root.relUrl;
|
||||
self.patient = root.patient;
|
||||
self.physician = root.physician;
|
||||
done();
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -408,7 +412,7 @@ describe('relations - integration', function() {
|
|||
self.url = root.relUrl;
|
||||
self.patient = root.patient;
|
||||
self.physician = root.physician;
|
||||
done();
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -453,7 +457,7 @@ describe('relations - integration', function() {
|
|||
self.url = root.relUrl;
|
||||
self.patient = root.patient;
|
||||
self.physician = root.physician;
|
||||
done();
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -473,7 +477,7 @@ describe('relations - integration', function() {
|
|||
'/patients/rel/' + '999';
|
||||
self.patient = root.patient;
|
||||
self.physician = root.physician;
|
||||
done();
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -492,7 +496,7 @@ describe('relations - integration', function() {
|
|||
self.url = root.relUrl;
|
||||
self.patient = root.patient;
|
||||
self.physician = root.physician;
|
||||
done();
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -547,7 +551,7 @@ describe('relations - integration', function() {
|
|||
'/patients/' + root.patient.id;
|
||||
self.patient = root.patient;
|
||||
self.physician = root.physician;
|
||||
done();
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -568,7 +572,7 @@ describe('relations - integration', function() {
|
|||
'/patients/' + root.patient.id;
|
||||
self.patient = root.patient;
|
||||
self.physician = root.physician;
|
||||
done();
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -684,6 +688,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.have.property('products');
|
||||
expect(res.body.products).to.eql([
|
||||
{
|
||||
|
@ -703,6 +708,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.have.property('products');
|
||||
expect(res.body.products).to.eql([
|
||||
{
|
||||
|
@ -764,6 +770,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body.name).to.be.equal('Group 1');
|
||||
expect(res.body.poster).to.be.eql(
|
||||
{ url: 'http://image.url' }
|
||||
|
@ -777,6 +784,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql(
|
||||
{ url: 'http://image.url' }
|
||||
);
|
||||
|
@ -800,6 +808,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql(
|
||||
{ url: 'http://changed.url' }
|
||||
);
|
||||
|
@ -857,6 +866,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body.name).to.be.equal('List A');
|
||||
expect(res.body.todoItems).to.be.eql([
|
||||
{ content: 'Todo 1', id: 1 },
|
||||
|
@ -871,6 +881,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ content: 'Todo 1', id: 1 },
|
||||
{ content: 'Todo 2', id: 2 }
|
||||
|
@ -885,6 +896,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ content: 'Todo 2', id: 2 }
|
||||
]);
|
||||
|
@ -910,6 +922,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ content: 'Todo 1', id: 1 },
|
||||
{ content: 'Todo 2', id: 2 },
|
||||
|
@ -924,6 +937,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql(
|
||||
{ content: 'Todo 3', id: 3 }
|
||||
);
|
||||
|
@ -946,6 +960,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ content: 'Todo 1', id: 1 },
|
||||
{ content: 'Todo 3', id: 3 }
|
||||
|
@ -957,6 +972,7 @@ describe('relations - integration', function() {
|
|||
it('returns a 404 response when embedded model is not found', function(done) {
|
||||
var url = '/api/todo-lists/' + this.todoList.id + '/items/2';
|
||||
this.get(url).expect(404, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body.error.status).to.be.equal(404);
|
||||
expect(res.body.error.message).to.be.equal('Unknown "todoItem" id "2".');
|
||||
expect(res.body.error.code).to.be.equal('MODEL_NOT_FOUND');
|
||||
|
@ -1044,6 +1060,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body.ingredientIds).to.eql([test.ingredient1]);
|
||||
expect(res.body).to.not.have.property('ingredients');
|
||||
done();
|
||||
|
@ -1069,6 +1086,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Chocolate', id: test.ingredient1 },
|
||||
{ name: 'Sugar', id: test.ingredient2 },
|
||||
|
@ -1084,6 +1102,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Chocolate', id: test.ingredient1 },
|
||||
{ name: 'Butter', id: test.ingredient3 }
|
||||
|
@ -1099,6 +1118,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Butter', id: test.ingredient3 }
|
||||
]);
|
||||
|
@ -1113,6 +1133,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body.ingredientIds).to.eql([
|
||||
test.ingredient1, test.ingredient3
|
||||
]);
|
||||
|
@ -1131,6 +1152,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql(
|
||||
{ name: 'Butter', id: test.ingredient3 }
|
||||
);
|
||||
|
@ -1146,6 +1168,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body.ingredientIds).to.eql(expected);
|
||||
expect(res.body).to.not.have.property('ingredients');
|
||||
done();
|
||||
|
@ -1169,6 +1192,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Chocolate', id: test.ingredient1 },
|
||||
{ name: 'Sugar', id: test.ingredient2 }
|
||||
|
@ -1183,6 +1207,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Chocolate', id: test.ingredient1 }
|
||||
]);
|
||||
|
@ -1210,6 +1235,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Chocolate', id: test.ingredient1 },
|
||||
{ name: 'Sugar', id: test.ingredient2 }
|
||||
|
@ -1235,6 +1261,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Sugar', id: test.ingredient2 }
|
||||
]);
|
||||
|
@ -1248,6 +1275,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.eql([
|
||||
{ name: 'Chocolate', id: test.ingredient1 },
|
||||
{ name: 'Sugar', id: test.ingredient2 }
|
||||
|
@ -1261,6 +1289,7 @@ describe('relations - integration', function() {
|
|||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(err).to.not.exist;
|
||||
expect(res.body.name).to.equal('Photo 1');
|
||||
done();
|
||||
|
@ -1395,6 +1424,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/books/' + test.book.id + '/pages')
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.an.array;
|
||||
expect(res.body).to.have.length(1);
|
||||
expect(res.body[0].name).to.equal('Page 1');
|
||||
|
@ -1406,6 +1436,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/pages/' + test.page.id + '/notes/' + test.note.id)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.headers['x-before']).to.equal('before');
|
||||
expect(res.headers['x-after']).to.equal('after');
|
||||
expect(res.body).to.be.an.object;
|
||||
|
@ -1418,6 +1449,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/books/unknown/pages/' + test.page.id + '/notes')
|
||||
.expect(404, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body.error).to.be.an.object;
|
||||
var expected = 'could not find a model with id unknown';
|
||||
expect(res.body.error.message).to.equal(expected);
|
||||
|
@ -1430,6 +1462,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/images/' + test.image.id + '/book/pages')
|
||||
.end(function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.an.array;
|
||||
expect(res.body).to.have.length(1);
|
||||
expect(res.body[0].name).to.equal('Page 1');
|
||||
|
@ -1441,6 +1474,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/images/' + test.image.id + '/book/pages/' + test.page.id)
|
||||
.end(function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.an.object;
|
||||
expect(res.body.name).to.equal('Page 1');
|
||||
done();
|
||||
|
@ -1451,6 +1485,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/books/' + test.book.id + '/pages/' + test.page.id + '/notes')
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.an.array;
|
||||
expect(res.body).to.have.length(1);
|
||||
expect(res.body[0].text).to.equal('Page Note 1');
|
||||
|
@ -1462,6 +1497,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/books/' + test.book.id + '/pages/' + test.page.id + '/notes/' + test.note.id)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.headers['x-before']).to.equal('before');
|
||||
expect(res.headers['x-after']).to.equal('after');
|
||||
expect(res.body).to.be.an.object;
|
||||
|
@ -1474,6 +1510,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/books/' + test.book.id + '/chapters/' + test.chapter.id + '/notes/' + test.cnote.id)
|
||||
.expect(200, function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.headers['x-before']).to.empty;
|
||||
expect(res.headers['x-after']).to.empty;
|
||||
done();
|
||||
|
@ -1497,6 +1534,7 @@ describe('relations - integration', function() {
|
|||
var test = this;
|
||||
this.get('/api/books/' + test.book.id + '/pages/' + this.page.id + '/throws')
|
||||
.end(function(err, res) {
|
||||
if (err) return done(err);
|
||||
expect(res.body).to.be.an('object');
|
||||
expect(res.body.error).to.be.an('object');
|
||||
expect(res.body.error.name).to.equal('Error');
|
||||
|
|
Loading…
Reference in New Issue