diff --git a/test/api-legacy/groups.coffee b/test/api-legacy/groups.coffee index 209b14e5cd..4111bf82e8 100644 --- a/test/api-legacy/groups.coffee +++ b/test/api-legacy/groups.coffee @@ -6,43 +6,6 @@ Group = require("../../website/src/models/group").model app = require("../../website/src/server") describe.skip "Guilds", -> - context "updating groups", -> - groupToUpdate = undefined - before (done) -> - request.post(baseURL + "/groups").send( - name: "TestGroup" - type: "guild" - description: "notUpdatedDesc" - ).end (err, res) -> - groupToUpdate = res.body - done() - - it "prevents user from updating a party when they aren't the leader", (done) -> - registerNewUser (err, tmpUser) -> - request.post(baseURL + "/groups/" + groupToUpdate._id).send( - name: "TestGroupName" - description: "updatedDesc" - ) - .set("X-API-User", tmpUser._id) - .set("X-API-Key", tmpUser.apiToken) - .end (err, res) -> - expectCode res, 401 - expect(res.body.err).to.equal "Only the group leader can update the group!" - done() - , false - - it "allows user to update a group", (done) -> - request.post(baseURL + "/groups/" + groupToUpdate._id).send( - description: "updatedDesc" - ) - .end (err, res) -> - expectCode res, 204 - request.get(baseURL + "/groups/" + groupToUpdate._id).send() - .end (err, res) -> - updatedGroup = res.body - expect(updatedGroup.description).to.equal "updatedDesc" - done() - context "leaving groups", -> it "can leave a guild", (done) -> guildToLeave = undefined diff --git a/test/api/groups/groups_id-post.js b/test/api/groups/groups_id-post.js new file mode 100644 index 0000000000..43659bae91 --- /dev/null +++ b/test/api/groups/groups_id-post.js @@ -0,0 +1,78 @@ +import { + generateGroup, + generateUser, + requester, +} from '../../helpers/api.helper'; + +describe('POST /groups/:id', () => { + + context('user is not the leader of the group', () => { + let api, user, otherUser, groupUserDoesNotOwn; + + beforeEach((done) => { + Promise.all([ + generateUser({ balance: 10 }), + generateUser({ balance: 10 }), + ]).then((users) => { + user = users[0]; + otherUser = users[1]; + api = requester(user); + + return generateGroup(otherUser, { + name: 'Group not Owned By User', + type: 'guild', + privacy: 'public', + members: [user, otherUser], + }); + }).then((group) => { + groupUserDoesNotOwn = group; + done(); + }).catch(done); + }); + + it('does not allow user to update group', (done) => { + api.post(`/groups/${groupUserDoesNotOwn._id}`, { + name: 'Change' + }).then(done).catch((err) => { + expect(err.code).to.eql(401); + expect(err.text).to.eql('Only the group leader can update the group!'); + done(); + }); + }); + }); + + context('user is the leader of the group', () => { + let api, user, usersGroup; + + beforeEach((done) => { + generateUser({ + balance: 10, + }).then((_user) => { + user = _user; + api = requester(user); + + return generateGroup(user, { + name: 'Original Group Title', + type: 'guild', + privacy: 'public', + }); + }).then((group) => { + usersGroup = group; + done(); + }).catch(done); + }); + + it('allows user to update group', (done) => { + api.post(`/groups/${usersGroup._id}`, { + name: 'New Group Title', + description: 'New group description', + }).then((group) => { + return api.get(`/groups/${usersGroup._id}`); + }).then((group) => { + expect(group.name).to.eql('New Group Title'); + expect(group.description).to.eql('New group description'); + done(); + }).catch(done); + }); + }); +});