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

Check for existing reviewers when adding user to a project (#26463)

GitOrigin-RevId: 935335345461133fb8b08fa95f960f801b8775a7
Domagoj Kriskovic 1 год назад
Родитель
Сommit
3a1ef872cd

+ 1 - 0
services/web/app/src/Features/Collaborators/CollaboratorsHandler.js

@@ -161,6 +161,7 @@ async function addUserIdToProject(
   })
   let level
   let existingUsers = project.collaberator_refs || []
+  existingUsers = existingUsers.concat(project.reviewer_refs || [])
   existingUsers = existingUsers.concat(project.readOnly_refs || [])
   existingUsers = existingUsers.map(u => u.toString())
   if (existingUsers.includes(userId.toString())) {

+ 34 - 0
services/web/test/unit/src/Collaborators/CollaboratorsHandlerTests.js

@@ -447,6 +447,40 @@ describe('CollaboratorsHandler', function () {
       })
     })
 
+    describe('when user already exists as a reviewer', function () {
+      beforeEach(function () {
+        this.project.collaberator_refs = []
+        this.project.reviewer_refs = [this.userId]
+        this.project.readOnly_refs = []
+      })
+
+      it('should not add the user again', async function () {
+        await this.CollaboratorsHandler.promises.addUserIdToProject(
+          this.project._id,
+          this.addingUserId,
+          this.userId,
+          'readAndWrite'
+        )
+      })
+    })
+
+    describe('when user already exists as a read-only user', function () {
+      beforeEach(function () {
+        this.project.collaberator_refs = []
+        this.project.reviewer_refs = []
+        this.project.readOnly_refs = [this.userId]
+      })
+
+      it('should not add the user again', async function () {
+        await this.CollaboratorsHandler.promises.addUserIdToProject(
+          this.project._id,
+          this.addingUserId,
+          this.userId,
+          'readAndWrite'
+        )
+      })
+    })
+
     describe('with null addingUserId', function () {
       beforeEach(async function () {
         this.project.collaberator_refs = []