Просмотр исходного кода

Test clicking the invite after already accepting

Shane Kilkelly 10 лет назад
Родитель
Сommit
545ce79c71
1 измененных файлов с 28 добавлено и 1 удалено
  1. 28 1
      services/web/test/acceptance/coffee/ProjectInviteTests.coffee

+ 28 - 1
services/web/test/acceptance/coffee/ProjectInviteTests.coffee

@@ -91,12 +91,21 @@ expectInvalidInvitePage = (user, link, callback=()->) ->
 		callback()
 
 expectInviteRedirectToRegister = (user, link, callback=()->) ->
+	# view invite, redirect to `/register`
 	tryFollowInviteLink user, link, (err, response, body) ->
 		expect(err).to.be.oneOf [null, undefined]
 		expect(response.statusCode).to.equal 302
 		expect(response.headers.location).to.match new RegExp("^/register\?.*redir=.*$")
 		callback()
 
+expectInviteRedirectToProject = (user, link, invite, callback=()->) ->
+	# view invite, redirect straight to project
+	tryFollowInviteLink user, link, (err, response, body) ->
+		expect(err).to.be.oneOf [null, undefined]
+		expect(response.statusCode).to.equal 302
+		expect(response.headers.location).to.equal "/project/#{invite.projectId}"
+		callback()
+
 expectAcceptInviteAndRedirect = (user, invite, callback=()->) ->
 	# should accept the invite and redirect to project
 	tryAcceptInvite user, invite, (err, response, body) =>
@@ -152,7 +161,25 @@ describe "ProjectInviteTests", ->
 					(cb) => revokeInvite(@sendingUser, @projectId, @invite._id, cb)
 				], done
 
-			# describe 'user is already a member of the project', ->
+			describe 'user is already a member of the project', ->
+
+				beforeEach (done) ->
+					Async.series [
+						(cb) =>
+							expectInvitePage @user, @link, cb
+						(cb) =>
+							expectAcceptInviteAndRedirect @user, @invite, cb
+					], done
+
+				describe 'when user clicks on the invite a second time', ->
+
+					it 'should just redirect to the project page', (done) ->
+						Async.series [
+							(cb) =>
+								expectProjectAccess @user, @invite.projectId, cb
+							(cb) =>
+								expectInviteRedirectToProject @user, @link, @invite, cb
+						], done
 
 			describe 'user is not a member of the project', ->