From e34b124c73269c11bbec7f12433343f240532dd8 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Fri, 22 Jul 2016 13:33:21 +0100 Subject: [PATCH] Test `revokeInvite` --- .../CollaboratorsInviteHandlerTests.coffee | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/services/web/test/UnitTests/coffee/Collaborators/CollaboratorsInviteHandlerTests.coffee b/services/web/test/UnitTests/coffee/Collaborators/CollaboratorsInviteHandlerTests.coffee index f4e3db64da..e97b98dc3a 100644 --- a/services/web/test/UnitTests/coffee/Collaborators/CollaboratorsInviteHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/Collaborators/CollaboratorsInviteHandlerTests.coffee @@ -17,7 +17,8 @@ describe "CollaboratorsInviteHandler", -> this[k] = v this save: sinon.stub() - findOne: sinon.stub() + @findOne: sinon.stub() + @remove: sinon.stub() @Project = {} @Crypto = Crypto @CollaboratorsInviteHandler = SandboxedModule.require modulePath, requires: @@ -33,6 +34,7 @@ describe "CollaboratorsInviteHandler", -> @sendingUserId = ObjectId() @email = "user@example.com" @userId = ObjectId() + @inviteId = ObjectId() @privileges = "readAndWrite" describe 'inviteToProject', -> @@ -89,3 +91,36 @@ describe "CollaboratorsInviteHandler", -> @call (err, invite) => expect(err).to.be.instanceof Error done() + + describe 'revokeInvite', -> + + beforeEach -> + @ProjectInvite.remove.callsArgWith(1, null) + @CollaboratorsEmailHandler.notifyUserOfProjectInvite = sinon.stub() + @call = (callback) => + @CollaboratorsInviteHandler.revokeInvite @projectId, @inviteId, callback + + describe 'when all goes well', -> + + beforeEach -> + + it 'should not produce an error', (done) -> + @call (err) => + expect(err).to.not.be.instanceof Error + done() + + it 'should call ProjectInvite.remove', (done) -> + @call (err) => + @ProjectInvite.remove.callCount.should.equal 1 + @ProjectInvite.remove.calledWith({projectId: @projectId, _id: @inviteId}).should.equal true + done() + + describe 'when remove produces an error', -> + + beforeEach -> + @ProjectInvite.remove.callsArgWith(1, new Error('woops')) + + it 'should produce an error', (done) -> + @call (err) => + expect(err).to.be.instanceof Error + done()