diff --git a/services/web/test/acceptance/coffee/ProjectInviteTests.coffee b/services/web/test/acceptance/coffee/ProjectInviteTests.coffee index 83eb5ee81f..c65e788398 100644 --- a/services/web/test/acceptance/coffee/ProjectInviteTests.coffee +++ b/services/web/test/acceptance/coffee/ProjectInviteTests.coffee @@ -80,6 +80,26 @@ describe "ProjectInviteTests", -> @link = CollaboratorsEmailHandler._buildInviteUrl(@fakeProject, @invite) done() + it 'should not grant access if the user does not accept the invite', (done) -> + Async.series( + [ + # go to the invite page + (cb) => + followInviteLink @user, @link, (err, response, body) => + expect(err).to.be.oneOf [null, undefined] + expect(response.statusCode).to.equal 200 + expect(body).to.match new RegExp("Project Invite - .*") + cb() + + # access the project page + (cb) => + @user.openProject @invite.projectId, (err) => + expect(err).to.be.instanceof Error + cb() + + ], done + ) + it 'should allow the user to accept the invite and access the project', (done) -> Async.series( [ diff --git a/services/web/test/acceptance/coffee/helpers/User.coffee b/services/web/test/acceptance/coffee/helpers/User.coffee index 3db946bea3..1d39e3cf92 100644 --- a/services/web/test/acceptance/coffee/helpers/User.coffee +++ b/services/web/test/acceptance/coffee/helpers/User.coffee @@ -73,7 +73,10 @@ class User @request.get { url: "/project/#{project_id}" }, (error, response, body) -> - return callback(error) if error? or response.statusCode != 200 + return callback(error) if error? + if response.statusCode != 200 + err = new Error("Non-success response when opening project: #{response.statusCode}") + return callback(err) callback(null) addUserToProject: (project_id, email, privileges, callback = (error, user) ->) ->