|
1 | 1 | /* jshint -W117, -W030 */ |
2 | | -(function () { |
| 2 | +(function() { |
3 | 3 | 'use strict'; |
4 | 4 |
|
5 | | - describe('Service: userService', function () { |
| 5 | + describe('Service: userService', function() { |
6 | 6 |
|
7 | 7 | var service; |
8 | 8 | var _user = { |
|
33 | 33 | } |
34 | 34 | }); |
35 | 35 |
|
| 36 | + bard.mockService(loginService, { |
| 37 | + getAuthenticatedStatus: $q.when(), |
| 38 | + }); |
| 39 | + |
36 | 40 | }); |
37 | 41 |
|
38 | | - beforeEach(inject(function (_userService_) { |
| 42 | + beforeEach(inject(function(_userService_) { |
39 | 43 | service = _userService_; |
40 | 44 | })); |
41 | 45 |
|
42 | | - it('should be defined', function () { |
| 46 | + it('should be defined', function() { |
43 | 47 | expect(service).to.be.defined; |
44 | 48 | }); |
45 | 49 |
|
46 | | - it('currentUser should not be defined', function () { |
| 50 | + it('currentUser should not be defined', function() { |
47 | 51 | expect(service.currentUser()).to.not.be.defined; |
48 | 52 | }); |
49 | 53 |
|
50 | | - it('should get the current logged in user - if loginService not init', function () { |
| 54 | + it('should get the current logged in user - if loginService not init', function() { |
51 | 55 | service.getUser().then(function(user) { |
52 | | - expect(user).to.deep.eq({ name: 'bob' }); |
| 56 | + expect(user).to.deep.eq(null); |
53 | 57 | }); |
54 | | - expect($http.get).to.have.been.calledOnce; |
| 58 | + |
| 59 | + expect(loginService.getAuthenticatedStatus).to.have.been.calledOnce; |
| 60 | + |
55 | 61 | $rootScope.$apply(); |
56 | 62 | }); |
57 | 63 |
|
58 | | - it('should set user with valid credentials', function () { |
59 | | - loginService.login('test', 'abc').then(function(response) { |
60 | | - expect(response.data).to.deep.eq({ authenticated: true, username: 'bob' }); |
61 | | - expect(service.currentUser()).to.deep.eq({ name: 'bob' }); |
62 | | - expect(service.getUser()).to.deep.eq({ name: 'bob' }); |
63 | | - }); |
64 | | - expect($http.post).to.have.been.calledOnce; |
65 | | - $rootScope.$apply(); |
| 64 | + it('should update the current user when logged in using loginService', function(done) { |
| 65 | + $rootScope.$broadcast('loginService:login-success', {data:_user}); |
| 66 | + $rootScope.$apply(service); |
| 67 | + |
| 68 | + done(); |
| 69 | + expect(service.currentUser().name).to.eq('bob'); |
66 | 70 | }); |
67 | 71 |
|
68 | 72 | it('should not set user with invalid credentials', function () { |
69 | 73 | _user.data.authenticated = false; |
70 | | - loginService.login('test', 'abcd').then(function(response) { |
71 | | - expect(response.data.authenticated).to.be.false; |
72 | | - expect(service.currentUser()).to.not.be.defined; |
73 | | - }); |
74 | | - expect($http.post).to.have.been.calledOnce; |
75 | | - $rootScope.$apply(); |
| 74 | + $rootScope.$broadcast('loginService:login-success', {data:_user}); |
| 75 | + $rootScope.$apply(service); |
| 76 | + |
| 77 | + expect(service.currentUser().name).to.eq(undefined); |
76 | 78 | }); |
77 | 79 |
|
78 | 80 | it('should clear user after logout', function () { |
79 | | - expect(service.currentUser()).to.not.be.defined; |
80 | | - _user.data.authenticated = true; |
81 | | - loginService.login('test', 'abcd').then(function(response) { |
82 | | - expect(response.data).to.deep.eq({ authenticated: true, username: 'bob' }); |
83 | | - expect(service.currentUser()).to.deep.eq({ name: 'bob' }); |
84 | | - |
85 | | - loginService.logout().then(function(response) { |
86 | | - expect(loginService.isAuthenticated()).to.be.false; |
87 | | - expect(service.currentUser()).to.not.be.defined; |
88 | | - }); |
89 | | - }); |
| 81 | + $rootScope.$broadcast('loginService:logout-success'); |
| 82 | + $rootScope.$apply(service); |
90 | 83 |
|
91 | | - $rootScope.$apply(); |
| 84 | + expect(service.currentUser()).to.not.be.defined; |
92 | 85 | }); |
93 | 86 | }); |
94 | 87 | }()); |
0 commit comments