-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2eddeee
commit febba76
Showing
8 changed files
with
181 additions
and
79 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
var co = require('co'); | ||
|
||
var app = require('../app.js'); | ||
module.exports.request = require('supertest').agent(app.listen()); | ||
|
||
var users = require('../userRoutes.js').users; | ||
module.exports.users = users; | ||
|
||
module.exports.removeAll = function(done){ | ||
co(function *(){ | ||
yield users.remove({}); | ||
// and other things we need to clean up | ||
})(done); | ||
}; | ||
|
||
module.exports.test_user = { name: 'Marcus', city : 'Bandung, Indonesia'}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
var co = require('co'); | ||
var helpers = require('./testHelpers.js'); | ||
var users = helpers.users; | ||
var request = helpers.request; | ||
|
||
describe('DEL to /user/:id', function(){ | ||
|
||
var test_user = {}; | ||
|
||
beforeEach(function (done) { | ||
test_user = helpers.test_user; | ||
helpers.removeAll(done); | ||
}); | ||
|
||
afterEach(function (done) { | ||
helpers.removeAll(done); | ||
}); | ||
|
||
it('deletes an existing user', function(done){ | ||
co(function *() { | ||
// Insert test user in database | ||
var user = yield users.insert(test_user); | ||
var userUrl = '/user/' + user._id; | ||
|
||
// Delete the user | ||
request | ||
.del(userUrl) | ||
.expect(200, done); | ||
})(); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
var co = require('co'); | ||
var helpers = require('./testHelpers.js'); | ||
var users = helpers.users; | ||
var request = helpers.request; | ||
|
||
describe('GET /user/:id ', function(){ | ||
|
||
var test_user = {}; | ||
|
||
beforeEach(function (done) { | ||
test_user = helpers.test_user; | ||
helpers.removeAll(done); | ||
}); | ||
|
||
afterEach(function (done) { | ||
helpers.removeAll(done); | ||
}); | ||
|
||
it('returns JSON for existing user', function (done) { | ||
co(function *() { | ||
// Insert test user in database | ||
var user = yield users.insert(test_user); | ||
var userUrl = '/user/' + user._id; | ||
|
||
// Get | ||
request | ||
.get(userUrl) | ||
.set('Accept', 'application/json') | ||
.expect('Content-Type', /json/) | ||
.expect(/Marcus/) | ||
.expect(/Bandung, Indonesia/) | ||
.expect(200, done); | ||
})(); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
var helpers = require('./testHelpers.js'); | ||
var users = helpers.users; | ||
var request = helpers.request; | ||
|
||
describe('POST to /user', function(){ | ||
|
||
var test_user = {}; | ||
|
||
beforeEach(function (done) { | ||
test_user = helpers.test_user; | ||
helpers.removeAll(done); | ||
}); | ||
|
||
afterEach(function (done) { | ||
helpers.removeAll(done); | ||
}); | ||
|
||
it('creates a new user for complete posted data', function(done){ | ||
// Post | ||
request | ||
.post('/user') | ||
.send(test_user) | ||
.expect('location', /^\/user\/[0-9a-fA-F]{24}$/) // Mongo Object Id /user/234234523562512512 | ||
.expect(200, done); | ||
}); | ||
|
||
it('returns validation error if name is not present', function(done){ | ||
var u = { city : "A city without a user name"}; | ||
|
||
request | ||
.post('/user') | ||
.send(u) | ||
.expect('ValidationError', "Name is required") | ||
.expect(200, done); | ||
}); | ||
|
||
it('returns validation error if city is not present', function(done){ | ||
var u = { name : "A name without a city"}; | ||
|
||
request | ||
.post('/user') | ||
.send(u) | ||
.expect('ValidationError', "City is required") | ||
.expect(200, done); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
var co = require('co'); | ||
var helpers = require('./testHelpers.js'); | ||
var users = helpers.users; | ||
var request = helpers.request; | ||
|
||
describe('PUT to /user', function(){ | ||
|
||
var test_user = {}; | ||
|
||
beforeEach(function (done) { | ||
test_user = helpers.test_user; | ||
helpers.removeAll(done); | ||
}); | ||
|
||
afterEach(function (done) { | ||
helpers.removeAll(done); | ||
}); | ||
|
||
it('updates an existing user for complete put data', function(done){ | ||
co(function *() { | ||
// Insert test user in database | ||
var user = yield users.insert(test_user); | ||
var userUrl = '/user/' + user._id; | ||
|
||
request | ||
.put(userUrl) | ||
.send({name: 'Marcus v2', City: 'Bandung Updated'}) | ||
.expect('location', userUrl) | ||
.expect(204, done); | ||
})(); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters