TwoToc code
[YouAndWeb_TwoToc] / server / api / user / user.integration.js
1 'use strict';
2
3 var app = require('../..');
4 var User = require('./user.model');
5 var request = require('supertest');
6
7 describe('User API:', function() {
8   var user;
9
10   // Clear users before testing
11   before(function() {
12     return User.removeAsync().then(function() {
13       user = new User({
14         name: 'Fake User',
15         email: 'test@example.com',
16         password: 'password'
17       });
18
19       return user.saveAsync();
20     });
21   });
22
23   // Clear users after testing
24   after(function() {
25     return User.removeAsync();
26   });
27
28   describe('GET /api/users/me', function() {
29     var token;
30
31     before(function(done) {
32       request(app)
33         .post('/auth/local')
34         .send({
35           email: 'test@example.com',
36           password: 'password'
37         })
38         .expect(200)
39         .expect('Content-Type', /json/)
40         .end(function(err, res) {
41           token = res.body.token;
42           done();
43         });
44     });
45
46     it('should respond with a user profile when authenticated', function(done) {
47       request(app)
48         .get('/api/users/me')
49         .set('authorization', 'Bearer ' + token)
50         .expect(200)
51         .expect('Content-Type', /json/)
52         .end(function(err, res) {
53           res.body._id.toString().should.equal(user._id.toString());
54           done();
55         });
56     });
57
58     it('should respond with a 401 when not authenticated', function(done) {
59       request(app)
60         .get('/api/users/me')
61         .expect(401)
62         .end(done);
63     });
64   });
65 });