X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f0ecfdc83d1807bfd81b285b76351e48db2ff992..c59724a9e5d4c9241df58d9d60541a63f0f06b80:/cypress/integration/sharing.spec.js diff --git a/cypress/integration/sharing.spec.js b/cypress/integration/sharing.spec.js index df7c74363b..5fbf5692f2 100644 --- a/cypress/integration/sharing.spec.js +++ b/cypress/integration/sharing.spec.js @@ -14,13 +14,11 @@ describe('Sharing tests', function () { cy.getUser('admin', 'Admin', 'User', true, true) .as('adminUser').then(function () { adminUser = this.adminUser; - } - ); + }); cy.getUser('collectionuser1', 'Collection', 'User', false, true) .as('activeUser').then(function () { activeUser = this.activeUser; - } - ); + }); }) beforeEach(function () { @@ -28,6 +26,38 @@ describe('Sharing tests', function () { cy.clearLocalStorage() }); + it('can create and delete sharing URLs on collections', () => { + const collName = 'shared-collection ' + new Date().getTime(); + cy.createCollection(adminUser.token, { + name: collName, + owner_uuid: adminUser.uuid, + }).as('sharedCollection').then(function (sharedCollection) { + cy.loginAs(adminUser); + + cy.get('main').contains(sharedCollection.name).rightclick(); + cy.get('[data-cy=context-menu]').within(() => { + cy.contains('Share').click(); + }); + cy.get('.sharing-dialog').within(() => { + cy.contains('Sharing URLs').click(); + cy.contains('Create sharing URL'); + cy.contains('No sharing URLs'); + cy.should('not.contain', 'Token'); + cy.should('not.contain', 'expiring at:'); + + cy.contains('Create sharing URL').click(); + cy.should('not.contain', 'No sharing URLs'); + cy.contains('Token'); + cy.contains('expiring at:'); + + cy.get('[data-cy=remove-url-btn]').find('button').click(); + cy.contains('No sharing URLs'); + cy.should('not.contain', 'Token'); + cy.should('not.contain', 'expiring at:'); + }) + }) + }); + it('can share projects to other users', () => { cy.loginAs(adminUser); @@ -46,8 +76,10 @@ describe('Sharing tests', function () { cy.get('.sharing-dialog').as('sharingDialog'); cy.get('[data-cy=invite-people-field]').find('input').type(activeUser.user.email); cy.get('[role=tooltip]').click(); - cy.get('@sharingDialog').contains('Save changes').click(); - cy.get('@sharingDialog').contains('Close').click(); + cy.get('@sharingDialog').within(() => { + cy.get('[data-cy=add-invited-people]').click(); + cy.contains('Close').click(); + }); }); cy.createGroup(adminUser.token, { @@ -62,8 +94,10 @@ describe('Sharing tests', function () { cy.get('.sharing-dialog').as('sharingDialog'); cy.get('[data-cy=invite-people-field]').find('input').type(activeUser.user.email); cy.get('[role=tooltip]').click(); - cy.get('@sharingDialog').contains('Save changes').click(); - cy.get('@sharingDialog').contains('Close').click(); + cy.get('@sharingDialog').within(() => { + cy.get('[data-cy=add-invited-people]').click(); + cy.contains('Close').click(); + }); }); cy.getAll('@mySharedWritableProject', '@mySharedReadonlyProject') @@ -106,4 +140,25 @@ describe('Sharing tests', function () { cy.testEditProjectOrCollection('main', mySharedWritableProject.name, newProjectName, newProjectDescription); }); }); -}); \ No newline at end of file + + it('can share only when target users are present', () => { + const collName = `mySharedCollectionForUsers-${new Date().getTime()}`; + cy.createCollection(adminUser.token, { + name: collName, + owner_uuid: adminUser.uuid, + }).as('mySharedCollectionForUsers') + + cy.getAll('@mySharedCollectionForUsers') + .then(function ([]) { + cy.loginAs(adminUser); + cy.get('[data-cy=project-panel]').contains(collName).rightclick(); + cy.get('[data-cy=context-menu]').contains('Share').click(); + cy.get('button').get('[data-cy=add-invited-people]').should('be.disabled'); + cy.get('[data-cy=invite-people-field] input').type('Anonymous'); + cy.get('div[role=tooltip]').contains('anonymous').click(); + cy.get('button').get('[data-cy=add-invited-people]').should('not.be.disabled'); + cy.get('[data-cy=invite-people-field] div[role=button]').contains('anonymous').parent().find('svg').click(); + cy.get('button').get('[data-cy=add-invited-people]').should('be.disabled'); + }); + }); +});