17436: Created generic code for project creation in cypress
[arvados-workbench2.git] / cypress / support / commands.js
index 3359055242609f4cfa99fc26835c32f4855cc306..8dc003fee1288f8b10cd76ec8bee7d27f1a17fc8 100644 (file)
@@ -217,27 +217,25 @@ Cypress.Commands.add('addToFavorites', (activeUserToken, activeUserUUID, itemUUI
     });
 })
 
-Cypress.Commands.add('createSharedProjects', (adminUser, activeUser) => {
-    cy.createGroup(adminUser.token, {
-        name: `my-shared-writable-project ${Math.floor(Math.random() * 999999)}`,
+Cypress.Commands.add('createProject', ({
+    owningUser,
+    targetUser,
+    projectName,
+    canWrite,
+    addToFavorites
+}) => {
+    const writePermission = canWrite ? 'can_write' : 'can_read';
+
+    cy.createGroup(owningUser.token, {
+        name: `${projectName} ${Math.floor(Math.random() * 999999)}`,
         group_class: 'project',
-    }).as('mySharedWritableProject').then((mySharedWritableProject) => {
-        cy.shareWith(adminUser.token, activeUser.user.uuid, mySharedWritableProject.uuid, 'can_write');
-        cy.addToFavorites(activeUser.token, activeUser.user.uuid, mySharedWritableProject.uuid);
+    }).as(`${projectName}`).then((project) => {
+        if (targetUser && targetUser !== owningUser) {
+            cy.shareWith(owningUser.token, targetUser.user.uuid, project.uuid, writePermission);
+        }
+        if (addToFavorites) {
+            const user = targetUser ? targetUser : owningUser;
+            cy.addToFavorites(user.token, user.user.uuid, project.uuid);
+        }
     });
-
-    cy.createGroup(adminUser.token, {
-        name: `my-shared-readonly-project ${Math.floor(Math.random() * 999999)}`,
-        group_class: 'project',
-    }).as('mySharedReadonlyProject').then((mySharedReadonlyProject) => {
-        cy.shareWith(adminUser.token, activeUser.user.uuid, mySharedReadonlyProject.uuid, 'can_read');
-        cy.addToFavorites(activeUser.token, activeUser.user.uuid, mySharedReadonlyProject.uuid);
-    });
-
-    cy.createGroup(activeUser.token, {
-        name: `my-project ${Math.floor(Math.random() * 999999)}`,
-        group_class: 'project',
-    }).as('myProject1').then((myProject1) => {
-        cy.addToFavorites(activeUser.token, activeUser.user.uuid, myProject1.uuid);
-    });
-})
\ No newline at end of file
+});
\ No newline at end of file