Reinstate error code in resolve promise for api tests.

This commit is contained in:
Blade Barringer
2015-10-26 07:53:51 -05:00
parent 01914523e1
commit 04fbdaa107
8 changed files with 56 additions and 14 deletions

View File

@@ -146,7 +146,10 @@ describe('GET /groups/:id', () => {
it('does not return the group object for a non-member', () => {
let api = requester(nonMember);
return expect(api.get(`/groups/${createdGroup._id}`))
.to.be.rejectedWith('Group not found or you don\'t have access.');
.to.eventually.be.rejected.and.eql({
code: 404,
text: 'Group not found or you don\'t have access.',
});
});
});
@@ -173,7 +176,10 @@ describe('GET /groups/:id', () => {
it('does not return the group object for a non-member', () => {
let api = requester(nonMember);
return expect(api.get(`/groups/${createdGroup._id}`))
.to.be.rejectedWith('Group not found or you don\'t have access.');
.to.eventually.be.rejected.and.eql({
code: 404,
text: 'Group not found or you don\'t have access.',
});
});
});
@@ -219,7 +225,10 @@ describe('GET /groups/:id', () => {
it('returns error if group does not exist', () => {
let api = requester(user);
return expect(api.get('/groups/group-that-does-not-exist'))
.to.be.rejectedWith('Group not found or you don\'t have access.');
.to.eventually.be.rejected.and.eql({
code: 404,
text: 'Group not found or you don\'t have access.',
});
});
});
});

View File

@@ -80,14 +80,20 @@ describe('POST /groups', () => {
return api.post('/groups', {
type: 'party',
});
})).to.be.rejectedWith('Already in a party, try refreshing.');
})).to.eventually.be.rejected.and.eql({
code: 400,
text: 'Already in a party, try refreshing.',
});
})
xit('prevents creating a public party. TODO: it is possible to create a public party. Should we send back an error? Automatically switch the privacy to private?', () => {
return expect(api.post('/groups', {
type: 'party',
privacy: 'public',
})).to.be.rejectedWith('Parties must be private');
})).to.eventually.be.rejected.and.eql({
code: 400,
text: 'Parties must be private',
});
});
});
@@ -111,7 +117,10 @@ describe('POST /groups', () => {
return api.post('/groups', {
type: 'guild',
});
})).to.be.rejectedWith('Not enough gems!');
})).to.eventually.be.rejected.and.eql({
code: 401,
text: 'Not enough gems!',
});
});

View File

@@ -32,7 +32,10 @@ describe('POST /groups/:id', () => {
it('does not allow user to update group', () => {
return expect(api.post(`/groups/${groupUserDoesNotOwn._id}`, {
name: 'Change'
})).to.be.rejectedWith('Only the group leader can update the group!');
})).to.eventually.be.rejected.and.eql({
code: 401,
text: 'Only the group leader can update the group!',
});
});
});

View File

@@ -86,7 +86,10 @@ describe('POST /groups/:id/leave', () => {
it('group is not accessible after leaving', () => {
return expect(api.post(`/groups/${group._id}/leave`).then((result) => {
return api.get(`/groups/${group._id}`);
})).to.be.rejectedWith('Group not found or you don\'t have access.');
})).to.eventually.be.rejected.and.eql({
code: 404,
text: 'Group not found or you don\'t have access.',
});
});
});

View File

@@ -38,7 +38,10 @@ describe('POST /groups/:id/removeMember', () => {
it('does not allow leader to remove themselves', () => {
return expect(api.post(`/groups/${group._id}/removeMember`, null, {
uuid: leader._id,
})).to.be.rejectedWith('You cannot remove yourself!');
})).to.eventually.be.rejected.and.eql({
code: 401,
text: 'You cannot remove yourself!',
});
});
it('can remove other members of guild', () => {

View File

@@ -37,7 +37,10 @@ describe('POST /register', () => {
email: email,
password: password,
confirmPassword: confirmPassword,
})).to.be.rejectedWith(':password and :confirmPassword don\'t match');
})).to.eventually.be.rejected.and.eql({
code: 401,
text: ':password and :confirmPassword don\'t match',
});
});
});
@@ -63,7 +66,10 @@ describe('POST /register', () => {
email: uniqueEmail,
password: password,
confirmPassword: password,
})).to.be.rejectedWith('Username already taken');
})).to.eventually.be.rejected.and.eql({
code: 401,
text: 'Username already taken',
});
});
it('rejects if email is already taken', () => {
@@ -76,7 +82,10 @@ describe('POST /register', () => {
email: email,
password: password,
confirmPassword: password,
})).to.be.rejectedWith('Email already taken');
})).to.eventually.be.rejected.and.eql({
code: 401,
text: 'Email already taken',
});
});
});
});

View File

@@ -15,7 +15,10 @@ describe('DELETE /user', () => {
it('deletes the user', () => {
return expect(api.del('/user').then((fetchedUser) => {
return api.get('/user');
})).to.be.rejectedWith('No user found.');
})).to.eventually.be.rejected.and.eql({
code: 401,
text: 'No user found.',
});
});
context('user in solo group', () => {

View File

@@ -188,7 +188,10 @@ function _requestMaker(user, method) {
if (err) {
if (!err.response) return reject(err);
let errorString = JSON.parse(err.response.text).err;
return reject(errorString);
return reject({
code: err.response.statusCode,
text: errorString,
});
}
resolve(response.body);