|
describe('Service: User', function() { |
|
|
|
var User, _inject, _setup, httpBackend; |
|
|
|
User = null; |
|
httpBackend = null; |
|
|
|
_inject = function() { |
|
inject(function(_User_, $httpBackend) { |
|
User = _User_; |
|
httpBackend = $httpBackend; |
|
}); |
|
}; |
|
|
|
afterEach(function() { |
|
httpBackend.verifyNoOutstandingExpectation(); |
|
httpBackend.verifyNoOutstandingRequest(); |
|
}); |
|
|
|
beforeEach(function() { |
|
module('demo.module'); |
|
}); |
|
|
|
describe('the User resource', function() { |
|
|
|
beforeEach(function() { |
|
_inject(); |
|
}); |
|
|
|
it('exists', function() { |
|
expect(!!User).toBe(true); |
|
}); |
|
|
|
it('returns a list of users', function() { |
|
// Arrange |
|
var users; |
|
httpBackend.expectGET('/api/users').respond([{}, {}, {}]); |
|
|
|
// Act |
|
users = User.query(); |
|
httpBackend.flush(); |
|
|
|
// Assert |
|
expect(users.length).toBe(3); |
|
}); |
|
|
|
it('returns stats about a user', function() { |
|
// Arrange |
|
httpBackend.expectGET('/api/users/1/stats').respond({ |
|
max: 2 |
|
}); |
|
|
|
// Act |
|
var stats = User.stats({ id: 1 }); |
|
httpBackend.flush(); |
|
|
|
// Assert |
|
expect(stats.max).toBe(2); |
|
}); |
|
|
|
it('builds the full name when getting a user', function() { |
|
// Arrange |
|
httpBackend.expectGET('/api/users/1').respond({ |
|
firstName: "John", |
|
lastName: "Smith" |
|
}); |
|
|
|
// Act |
|
var user = User.get({ id: 1 }); |
|
httpBackend.flush(); |
|
|
|
// Assert |
|
expect(user.fullName).toBe("John Smith"); |
|
}); |
|
|
|
it('does not rebuilds full name when getting a user', function() { |
|
// Arrange |
|
httpBackend.expectGET('/api/users/1').respond({ |
|
fullName: "John Smith" |
|
}); |
|
|
|
// Act |
|
var user = User.get({ id: 1 }); |
|
httpBackend.flush(); |
|
|
|
// Assert |
|
expect(user.fullName).toBe("John Smith"); |
|
}); |
|
|
|
it('builds the full name when quering users', function() { |
|
// Arrange |
|
httpBackend.expectGET('/api/users').respond([ |
|
{ |
|
firstName: "John", |
|
lastName: "Smith" |
|
} |
|
]); |
|
|
|
// Act |
|
var users = User.query(); |
|
httpBackend.flush(); |
|
|
|
// Assert |
|
expect(users[0].fullName).toBe("John Smith"); |
|
}); |
|
|
|
it('does not rebuilds full name when quering useres', function() { |
|
// Arrange |
|
httpBackend.expectGET('/api/users').respond([ |
|
{ |
|
fullName: "John Smith" |
|
} |
|
]); |
|
|
|
// Act |
|
var users = User.query(); |
|
httpBackend.flush(); |
|
|
|
// Assert |
|
expect(users[0].fullName).toBe("John Smith"); |
|
}); |
|
|
|
it('keeps angular default JSON parser on .query() requests', function() { |
|
// Arrange |
|
var users; |
|
httpBackend.expectGET('/api/users').respond(angular.toJson([ |
|
{ |
|
firstName: "John" |
|
} |
|
])); |
|
users = User.query(); |
|
httpBackend.flush(); |
|
expect(users[0].firstName).toBe("John"); |
|
}); |
|
|
|
it('keeps angular default JSON parser on .get() requests', function() { |
|
// Arrange |
|
httpBackend.expectGET('/api/users/1').respond(angular.toJson({ |
|
firstName: "John" |
|
})); |
|
|
|
// Act |
|
var user = User.get({ id: 1 }); |
|
httpBackend.flush(); |
|
|
|
// Assert |
|
expect(user.firstName).toBe("John"); |
|
}); |
|
}); |
|
}); |