X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/7d40a4a432ce8dfea8e49f3d330220aea6957790..c390816e1df89c27662ef3fe79da10b66410edaa:/cypress/integration/collection.spec.js diff --git a/cypress/integration/collection.spec.js b/cypress/integration/collection.spec.js index 5bad87b3..797a9d49 100644 --- a/cypress/integration/collection.spec.js +++ b/cypress/integration/collection.spec.js @@ -53,7 +53,7 @@ describe('Collection panel tests', function () { const childrenCollection = Array.prototype.slice.call(Cypress.$(body).find('dict')[0].children); const map = {}; let i, j = 2; - + for (i=0; i < childrenCollection.length; i += j) { map[childrenCollection[i].outerText] = childrenCollection[i + 1].outerText; } @@ -103,8 +103,7 @@ describe('Collection panel tests', function () { cy.doRequest('GET', `/arvados/v1/collections/${this.testCollection.uuid}`) .its('body').as('collection') .then(function () { - expect(this.collection.properties).to.deep.equal( - { IDTAGCOLORS: 'IDVALCOLORS3' }); + expect(this.collection.properties.IDTAGCOLORS).to.equal('IDVALCOLORS3'); }); }); }); @@ -116,6 +115,7 @@ describe('Collection panel tests', function () { // on this loop may pass an assertion from the first iteration by looking // for the same file name. const fileName = isWritable ? 'bar' : 'foo'; + const subDirName = 'subdir'; cy.createGroup(adminUser.token, { name: 'Shared project', group_class: 'project', @@ -126,7 +126,7 @@ describe('Collection panel tests', function () { name: 'Test collection', owner_uuid: this.sharedGroup.uuid, properties: { someKey: 'someValue' }, - manifest_text: `. 37b51d194a7513e45b56f6524f2d51f2+3 0:3:${fileName}\n` + manifest_text: `. 37b51d194a7513e45b56f6524f2d51f2+3 0:3:${fileName}\n./${subDirName} 37b51d194a7513e45b56f6524f2d51f2+3 0:3:${fileName}\n` }) .as('testCollection').then(function () { // Share the group with active user. @@ -184,6 +184,7 @@ describe('Collection panel tests', function () { .should(`${isWritable ? '' : 'not.'}contain`, 'Upload data'); } }); + // Test context menus cy.get('[data-cy=collection-files-panel]') .contains(fileName).rightclick({ force: true }); cy.get('[data-cy=context-menu]') @@ -193,6 +194,15 @@ describe('Collection panel tests', function () { .and(`${isWritable ? '' : 'not.'}contain`, 'Rename') .and(`${isWritable ? '' : 'not.'}contain`, 'Remove'); cy.get('body').click(); // Collapse the menu + cy.get('[data-cy=collection-files-panel]') + .contains(subDirName).rightclick({ force: true }); + cy.get('[data-cy=context-menu]') + .should('not.contain', 'Download') + .and('contain', 'Open in new tab') + .and('contain', 'Copy to clipboard') + .and(`${isWritable ? '' : 'not.'}contain`, 'Rename') + .and(`${isWritable ? '' : 'not.'}contain`, 'Remove'); + cy.get('body').click(); // Collapse the menu // Hamburger 'more options' menu button cy.get('[data-cy=collection-files-panel-options-btn]') .click() @@ -202,16 +212,8 @@ describe('Collection panel tests', function () { cy.get('[data-cy=collection-files-panel-options-btn]') .click() cy.get('[data-cy=context-menu]') - // .should('contain', 'Download selected') .should(`${isWritable ? '' : 'not.'}contain`, 'Remove selected') cy.get('body').click(); // Collapse the menu - // File item 'more options' button - cy.get('[data-cy=file-item-options-btn') - .click() - cy.get('[data-cy=context-menu]') - .should('contain', 'Download') - .and(`${isWritable ? '' : 'not.'}contain`, 'Remove'); - cy.get('body').click(); // Collapse the menu }) }) }) @@ -265,7 +267,9 @@ describe('Collection panel tests', function () { cy.get('[data-cy=form-dialog]') .should('contain', 'Rename') .within(() => { - cy.get('input').type(`{selectall}{backspace}${to}`); + cy.get('input') + .type('{selectall}{backspace}') + .type(to, { parseSpecialCharSequences: false }); }); cy.get('[data-cy=form-submit-btn]').click(); cy.get('[data-cy=collection-files-panel]') @@ -563,7 +567,8 @@ describe('Collection panel tests', function () { // Create new collection cy.get('[data-cy=side-panel-button]').click(); cy.get('[data-cy=side-panel-new-collection]').click(); - const collName = `Test collection (${Math.floor(999999 * Math.random())})`; + // Name between brackets tests bugfix #17582 + const collName = `[Test collection (${Math.floor(999999 * Math.random())})]`; cy.get('[data-cy=form-dialog]') .should('contain', 'New collection') .within(() => { @@ -580,4 +585,35 @@ describe('Collection panel tests', function () { cy.get('[data-cy=breadcrumb-first]').should('contain', 'Projects'); cy.get('[data-cy=breadcrumb-last]').should('contain', collName); }); + + it.only('shows responsible person for collection if available', () => { + cy.createCollection(adminUser.token, { + name: `Test collection ${Math.floor(Math.random() * 999999)}`, + owner_uuid: activeUser.user.uuid, + manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n" + }) + .as('testCollection1'); + + cy.createCollection(adminUser.token, { + name: `Test collection ${Math.floor(Math.random() * 999999)}`, + owner_uuid: adminUser.user.uuid, + manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n" + }) + .as('testCollection2').then(function (testCollection2) { + cy.shareWith(adminUser.token, activeUser.user.uuid, testCollection2.uuid, 'can_write'); + }); + + cy.getAll('@testCollection1', '@testCollection2') + .then(function ([testCollection1, testCollection2]) { + cy.loginAs(activeUser); + + cy.goToPath(`/collections/${testCollection1.uuid}`); + cy.get('[data-cy=responsible-person-wrapper]') + .contains(activeUser.user.uuid); + + cy.goToPath(`/collections/${testCollection2.uuid}`); + cy.get('[data-cy=responsible-person-wrapper]') + .contains(adminUser.user.uuid); + }); + }); })