17500: Avoids multi-slash URLs usage.
[arvados-workbench2.git] / cypress / support / commands.js
index 3359055242609f4cfa99fc26835c32f4855cc306..2a7f350ae90e5a16b717f2a99aa72a6066af5c09 100644 (file)
@@ -36,7 +36,7 @@ Cypress.Commands.add(
         token = systemToken, auth = false, followRedirect = true) => {
     return cy.request({
         method: method,
-        url: `${controllerURL}/${path}`,
+        url: `${controllerURL.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`,
         body: data,
         qs: auth ? qs : Object.assign({ api_token: token }, qs),
         auth: auth ? { bearer: `${token}` } : undefined,
@@ -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