diff --git a/karma.conf.js b/karma.conf.js index 0c3f1095bc..59aff0d276 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -12,6 +12,7 @@ module.exports = function(config) { // list of files / patterns to load in the browser files: [ 'public/bower_components/angular/angular.js', + 'public/bower_components/angular-resource/angular-resource.min.js', 'public/bower_components/angular-mocks/angular-mocks.js', 'public/bower_components/marked/lib/marked.js', 'public/bower_components/habitrpg-shared/dist/habitrpg-shared.js', diff --git a/test/spec/memberServicesSpec.js b/test/spec/memberServicesSpec.js new file mode 100644 index 0000000000..47acf96364 --- /dev/null +++ b/test/spec/memberServicesSpec.js @@ -0,0 +1,40 @@ +'use strict'; + +describe('memberServices', function() { + var $httpBackend, members; + + beforeEach(module('memberServices')); + beforeEach(module('habitrpg')); + + beforeEach(inject(function(_$httpBackend_, Members) { + $httpBackend = _$httpBackend_; + members = Members; + })); + + it('has no members at the beginning', function() { + expect(members.members).to.be.an('object'); + expect(members.members).to.eql({}); + expect(members.selectedMember).to.be.undefined; + }); + + it('populates members', function(){ + var uid = 'abc'; + members.populate({ + members: [{ _id: uid }] + }); + expect(members.members).to.eql({ + abc: { _id: uid } + }); + }); + + it('selects a member', function(){ + var uid = 'abc'; + $httpBackend.expectGET('/api/v1/members/' + uid).respond({ _id: uid }); + members.selectMember(uid); + $httpBackend.flush(); + + expect(members.selectedMember._id).to.eql(uid); + expect(members.members).to.have.property(uid); + }); + +}); \ No newline at end of file