mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 07:37:25 +01:00
119 lines
3.6 KiB
JavaScript
119 lines
3.6 KiB
JavaScript
'use strict';
|
|
|
|
describe('memberServices', function() {
|
|
var $httpBackend, members;
|
|
var apiV3Prefix = '/api/v3';
|
|
|
|
beforeEach(inject(function (_$httpBackend_, Members) {
|
|
$httpBackend = _$httpBackend_;
|
|
members = Members;
|
|
}));
|
|
|
|
afterEach(function() {
|
|
$httpBackend.verifyNoOutstandingExpectation();
|
|
$httpBackend.verifyNoOutstandingRequest();
|
|
});
|
|
|
|
|
|
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('calls fetch member', function() {
|
|
var memberId = 1;
|
|
var memberUrl = apiV3Prefix + '/members/' + memberId;
|
|
$httpBackend.expectGET(memberUrl).respond({});
|
|
members.fetchMember(memberId);
|
|
$httpBackend.flush();
|
|
});
|
|
|
|
it('calls get group members', function() {
|
|
var groupId = 1;
|
|
var memberUrl = apiV3Prefix + '/groups/' + groupId + '/members';
|
|
$httpBackend.expectGET(memberUrl).respond({});
|
|
members.getGroupMembers(groupId);
|
|
$httpBackend.flush();
|
|
});
|
|
|
|
it('calls get group invites', function() {
|
|
var groupId = 1;
|
|
var memberUrl = apiV3Prefix + '/groups/' + groupId + '/invites';
|
|
$httpBackend.expectGET(memberUrl).respond({});
|
|
members.getGroupInvites(groupId);
|
|
$httpBackend.flush();
|
|
});
|
|
|
|
it('calls get challenge members', function() {
|
|
var challengeId = 1;
|
|
var memberUrl = apiV3Prefix + '/challenges/' + challengeId + '/members?includeAllMembers=true';
|
|
$httpBackend.expectGET(memberUrl).respond({});
|
|
members.getChallengeMembers(challengeId);
|
|
$httpBackend.flush();
|
|
});
|
|
|
|
it('calls get challenge members progress', function() {
|
|
var challengeId = 1;
|
|
var memberId = 2;
|
|
var memberUrl = apiV3Prefix + '/challenges/' + challengeId + '/members/' + memberId;
|
|
$httpBackend.expectGET(memberUrl).respond({});
|
|
members.getChallengeMemberProgress(challengeId, memberId);
|
|
$httpBackend.flush();
|
|
});
|
|
|
|
describe('addToMembersList', function() {
|
|
it('adds member to members object', function() {
|
|
var member = { _id: 'user_id' };
|
|
members.addToMembersList(member, members);
|
|
expect(members.members).to.eql({
|
|
user_id: { _id: 'user_id' }
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('selectMember', function() {
|
|
it('fetches member if not already in cache', function(done) {
|
|
var uid = 'abc';
|
|
var memberResponse = {
|
|
data: {_id: uid},
|
|
}
|
|
$httpBackend.expectGET(apiV3Prefix + '/members/' + uid).respond(memberResponse);
|
|
members.selectMember(uid)
|
|
.then(function () {
|
|
expect(members.selectedMember._id).to.eql(uid);
|
|
expect(members.members).to.have.property(uid);
|
|
done();
|
|
});
|
|
$httpBackend.flush();
|
|
});
|
|
|
|
it('fetches member if member data in cache is incomplete', function(done) {
|
|
var uid = 'abc';
|
|
members.members = {
|
|
abc: { _id: 'abc', items: {} }
|
|
}
|
|
var memberResponse = {
|
|
data: {_id: uid},
|
|
}
|
|
$httpBackend.expectGET(apiV3Prefix + '/members/' + uid).respond(memberResponse);
|
|
members.selectMember(uid)
|
|
.then(function () {
|
|
expect(members.selectedMember._id).to.eql(uid);
|
|
expect(members.members).to.have.property(uid);
|
|
done();
|
|
});
|
|
$httpBackend.flush();
|
|
});
|
|
|
|
it('gets member from cache if member has a weapons object', function() {
|
|
var uid = 'abc';
|
|
members.members[uid] = { _id: uid, items: { weapon: {} } };
|
|
members.selectMember(uid, function(){
|
|
expect(members.selectedMember._id).to.eql(uid);
|
|
expect(members.members).to.have.property(uid);
|
|
});
|
|
});
|
|
});
|
|
});
|