Browse Source

get invite and link for test

Shane Kilkelly 10 years ago
parent
commit
23c94c9599

+ 35 - 6
services/web/test/acceptance/coffee/ProjectInviteTests.coffee

@@ -3,6 +3,19 @@ Async = require("async")
 User = require "./helpers/User"
 User = require "./helpers/User"
 request = require "./helpers/request"
 request = require "./helpers/request"
 settings = require "settings-sharelatex"
 settings = require "settings-sharelatex"
+CollaboratorsEmailHandler = require "../../../app/js/Features/Collaborators/CollaboratorsEmailHandler"
+
+
+_createInvite = (projectId, user, email, callback=(err, invite)->) ->
+	user.getCsrfToken (err) ->
+		return callback(err) if err
+		user.request.post {
+			url: "/project/#{projectId}/invite",
+			json:
+				email: email
+		}, (err, response, body) ->
+			return callback(err) if err
+			callback(err, body.invite)
 
 
 describe "ProjectInviteTests", ->
 describe "ProjectInviteTests", ->
 	before (done) ->
 	before (done) ->
@@ -10,19 +23,30 @@ describe "ProjectInviteTests", ->
 		@sendingUser = new User()
 		@sendingUser = new User()
 		@user = new User()
 		@user = new User()
 		@site_admin = new User({email: "admin@example.com"})
 		@site_admin = new User({email: "admin@example.com"})
+		@email = 'user@example.com'
+		@projectName = 'sharing test'
 		@projectId = null
 		@projectId = null
+		@fakeProject = null
 		Async.series [
 		Async.series [
 			(cb) => @user.login cb
 			(cb) => @user.login cb
-			(cb) => @user.logout cb
 			(cb) => @sendingUser.login cb
 			(cb) => @sendingUser.login cb
-			(cb) => @sendingUser.createProject('sharing test', (err, projectId) =>
+			(cb) => @sendingUser.createProject(@projectName, (err, projectId, project) =>
 				throw err if err
 				throw err if err
 				@projectId = projectId
 				@projectId = projectId
+				@fakeProject = {
+					_id: projectId,
+					name: @projectName,
+					owner_ref: @sendingUser
+				}
 				cb()
 				cb()
 			)
 			)
-			(cb) => @sendingUser.logout cb
 		], done
 		], done
 
 
+		after (done) ->
+			Async.series [
+				(cb) => @sendingUser.deleteProject(@projectId, cb)
+			], done
+
 	describe "user is logged in", ->
 	describe "user is logged in", ->
 
 
 		beforeEach (done) ->
 		beforeEach (done) ->
@@ -33,16 +57,21 @@ describe "ProjectInviteTests", ->
 
 
 		describe 'user is already a member of the project', ->
 		describe 'user is already a member of the project', ->
 
 
-			beforeEach ->
+			beforeEach (done) ->
+				@invite = null
+				@link = null
+				_createInvite @projectId, @sendingUser, @email, (err, invite) =>
+					@invite = invite
+					@link = CollaboratorsEmailHandler._buildInviteUrl(@fakeProject, @invite)
+					done()
 
 
 			it 'should redirect to the project page', (done) ->
 			it 'should redirect to the project page', (done) ->
 				Async.series(
 				Async.series(
 					[
 					[
 						(cb) =>
 						(cb) =>
+							console.log ">> yes"
 							cb()
 							cb()
 
 
-
-
 					], (err, result) =>
 					], (err, result) =>
 						if err
 						if err
 							throw err
 							throw err

+ 11 - 4
services/web/test/acceptance/coffee/helpers/User.coffee

@@ -13,7 +13,7 @@ class User
 		@request = request.defaults({
 		@request = request.defaults({
 			jar: @jar
 			jar: @jar
 		})
 		})
-	
+
 	login: (callback = (error) ->) ->
 	login: (callback = (error) ->) ->
 		@getCsrfToken (error) =>
 		@getCsrfToken (error) =>
 			return callback(error) if error?
 			return callback(error) if error?
@@ -58,8 +58,15 @@ class User
 			return callback(error) if error?
 			return callback(error) if error?
 			if !body?.project_id?
 			if !body?.project_id?
 				console.error "SOMETHING WENT WRONG CREATING PROJECT", response.statusCode, response.headers["location"], body
 				console.error "SOMETHING WENT WRONG CREATING PROJECT", response.statusCode, response.headers["location"], body
-			callback(null, body.project_id)
-	
+			callback(null, body.project_id, body)
+
+	deleteProject: (project_id, callback=(error)) ->
+		@request.delete {
+			url: "/project/#{project_id}"
+		}, (error, response, body) ->
+			return callback(error) if error?
+			callback(null)
+
 	addUserToProject: (project_id, email, privileges, callback = (error, user) ->) ->
 	addUserToProject: (project_id, email, privileges, callback = (error, user) ->) ->
 		@request.post {
 		@request.post {
 			url: "/project/#{project_id}/users",
 			url: "/project/#{project_id}/users",
@@ -67,7 +74,7 @@ class User
 		}, (error, response, body) ->
 		}, (error, response, body) ->
 			return callback(error) if error?
 			return callback(error) if error?
 			callback(null, body.user)
 			callback(null, body.user)
-	
+
 	makePublic: (project_id, level, callback = (error) ->) ->
 	makePublic: (project_id, level, callback = (error) ->) ->
 		@request.post {
 		@request.post {
 			url: "/project/#{project_id}/settings/admin",
 			url: "/project/#{project_id}/settings/admin",