From e3234a54cebcede1ba1193fb554b23fe5d1e6ec5 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 22 Oct 2015 17:15:40 -0500 Subject: [PATCH] Refactor get groups test to test all kinds of groups --- test/api/groups/GET-groups_id.test.js | 107 ++++++++++++++------------ 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/test/api/groups/GET-groups_id.test.js b/test/api/groups/GET-groups_id.test.js index 40ab7d0e05..6e532f2919 100644 --- a/test/api/groups/GET-groups_id.test.js +++ b/test/api/groups/GET-groups_id.test.js @@ -3,62 +3,67 @@ import { generateUser, requester, } from '../../helpers/api.helper'; +import {each} from 'lodash'; describe('GET /groups/:id', () => { - context('All types of groups', () => { - let api, leader, createdGroup; + let typesOfGroups = { + publicGuilds: { type: 'guild', privacy: 'public' }, + privateGuilds: { type: 'guild', privacy: 'private' }, + party: { type: 'party', privacy: 'private' }, + } - beforeEach((done) => { - generateUser({ - balance: 1, - }).then((user) => { - leader = user; - api = requester(user); - return generateGroup(leader, { - name: 'group name', - type: 'guild', - privacy: 'public', + each(typesOfGroups, (groupData, groupType) => { + context(`Group Type: ${groupType}`, () => { + let api, leader, createdGroup; + + beforeEach((done) => { + generateUser({ + balance: 1, + }).then((user) => { + leader = user; + api = requester(user); + return generateGroup(leader, groupData); + }).then((group) => { + createdGroup = group; + done(); + }).catch(done); + }); + + it('transforms members array to an array of user objects', (done) => { + api.get(`/groups/${createdGroup._id}`).then((group) => { + let member = group.members[0]; + expect(member._id).to.eql(leader._id); + expect(member.profile.name).to.eql(leader.profile.name); + expect(member.items).to.exist; + expect(member.stats).to.exist; + expect(member.achievements).to.exist; + expect(member.contributor).to.exist; + done(); + }).catch(done); + }); + + it('transforms leader id to leader object', (done) => { + api.get(`/groups/${createdGroup._id}`).then((group) => { + expect(group.leader._id).to.eql(leader._id); + expect(group.leader.profile.name).to.eql(leader.profile.name); + expect(group.leader.items).to.exist; + expect(group.leader.stats).to.exist; + expect(group.leader.achievements).to.exist; + expect(group.leader.contributor).to.exist; + done(); + }).catch(done); + }); + + it('returns error if group does not exist', (done) => { + generateUser().then((user) => { + api = requester(user); + return api.get('/groups/group-that-does-not-exist'); + }).then((done)).catch((err) => { + expect(err.code).to.eql(404); + expect(err.text).to.eql('Group not found or you don\'t have access.'); + done() }); - }).then((group) => { - createdGroup = group; - done(); - }).catch(done); - }); - - it('transforms members array to an array of user objects', (done) => { - api.get(`/groups/${createdGroup._id}`).then((group) => { - let member = group.members[0]; - expect(member._id).to.eql(leader._id); - expect(member.profile.name).to.eql(leader.profile.name); - expect(member.items).to.exist; - expect(member.stats).to.exist; - expect(member.achievements).to.exist; - expect(member.contributor).to.exist; - done(); - }).catch(done); - }); - - it('transforms leader id to leader object', (done) => { - api.get(`/groups/${createdGroup._id}`).then((group) => { - expect(group.leader._id).to.eql(leader._id); - expect(group.leader.profile.name).to.eql(leader.profile.name); - expect(group.leader.items).to.exist; - expect(group.leader.stats).to.exist; - expect(group.leader.achievements).to.exist; - expect(group.leader.contributor).to.exist; - done(); - }).catch(done); - }); - - it('returns error if group does not exist', (done) => { - generateUser().then((user) => { - api = requester(user); - return api.get('/groups/group-that-does-not-exist'); - }).then((done)).catch((err) => { - expect(err.code).to.eql(404); - expect(err.text).to.eql('Group not found or you don\'t have access.'); - done() }); }); });