X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/34ed87de05ae7c6d99aefe21e83af382e371cc53..2e83c4e79939937cb88c5fe9c02ce91459fc2655:/cypress/integration/collection.spec.js diff --git a/cypress/integration/collection.spec.js b/cypress/integration/collection.spec.js index e9876c97..c169de2f 100644 --- a/cypress/integration/collection.spec.js +++ b/cypress/integration/collection.spec.js @@ -43,7 +43,7 @@ describe('Collection panel tests', function () { cy.goToPath(`/collections/${testCollection.uuid}`); cy.get('[data-cy=collection-panel-options-btn]').click(); - cy.get('[data-cy=context-menu]').contains('Open as network folder or S3 bucket').click(); + cy.get('[data-cy=context-menu]').contains('Open with 3rd party client').click(); cy.get('[data-cy=download-button').click(); const filename = path.join(downloadsFolder, `${testCollection.name}.duck`); @@ -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'); }); }); }); @@ -239,8 +238,6 @@ describe('Collection panel tests', function () { const names = [ 'bar', // initial name already set - '[between brackets]', // JSON-like strings (#17582) - '{between braces}', // JSON-like strings (#17582) '&', 'foo', '&', @@ -434,6 +431,71 @@ describe('Collection panel tests', function () { }); }); + it('views & edits storage classes data', function () { + const colName= `Test Collection ${Math.floor(Math.random() * 999999)}`; + cy.createCollection(adminUser.token, { + name: colName, + owner_uuid: activeUser.user.uuid, + manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:some-file\n", + }).as('collection').then(function () { + expect(this.collection.storage_classes_desired).to.deep.equal(['default']) + + cy.loginAs(activeUser) + cy.goToPath(`/collections/${this.collection.uuid}`); + + // Initial check: it should show the 'default' storage class + cy.get('[data-cy=collection-info-panel]') + .should('contain', 'Storage classes') + .and('contain', 'default') + .and('not.contain', 'foo') + .and('not.contain', 'bar'); + // Edit collection: add storage class 'foo' + cy.get('[data-cy=collection-panel-options-btn]').click(); + cy.get('[data-cy=context-menu]').contains('Edit collection').click(); + cy.get('[data-cy=form-dialog]') + .should('contain', 'Edit Collection') + .and('contain', 'Storage classes') + .and('contain', 'default') + .and('contain', 'foo') + .and('contain', 'bar') + .within(() => { + cy.get('[data-cy=checkbox-foo]').click(); + }); + cy.get('[data-cy=form-submit-btn]').click(); + cy.get('[data-cy=collection-info-panel]') + .should('contain', 'default') + .and('contain', 'foo') + .and('not.contain', 'bar'); + cy.doRequest('GET', `/arvados/v1/collections/${this.collection.uuid}`) + .its('body').as('updatedCollection') + .then(function () { + expect(this.updatedCollection.storage_classes_desired).to.deep.equal(['default', 'foo']); + }); + // Edit collection: remove storage class 'default' + cy.get('[data-cy=collection-panel-options-btn]').click(); + cy.get('[data-cy=context-menu]').contains('Edit collection').click(); + cy.get('[data-cy=form-dialog]') + .should('contain', 'Edit Collection') + .and('contain', 'Storage classes') + .and('contain', 'default') + .and('contain', 'foo') + .and('contain', 'bar') + .within(() => { + cy.get('[data-cy=checkbox-default]').click(); + }); + cy.get('[data-cy=form-submit-btn]').click(); + cy.get('[data-cy=collection-info-panel]') + .should('not.contain', 'default') + .and('contain', 'foo') + .and('not.contain', 'bar'); + cy.doRequest('GET', `/arvados/v1/collections/${this.collection.uuid}`) + .its('body').as('updatedCollection') + .then(function () { + expect(this.updatedCollection.storage_classes_desired).to.deep.equal(['foo']); + }); + }) + }); + it('uses the collection version browser to view a previous version', function () { const colName = `Test Collection ${Math.floor(Math.random() * 999999)}`; @@ -472,10 +534,14 @@ describe('Collection panel tests', function () { .within(() => { // Version 1: 6 bytes in size cy.get('[data-cy=collection-version-browser-select-1]') - .should('contain', '1').and('contain', '6 B'); + .should('contain', '1') + .and('contain', '6 B') + .and('contain', adminUser.user.uuid); // Version 2: 3 bytes in size (one file removed) cy.get('[data-cy=collection-version-browser-select-2]') - .should('contain', '2').and('contain', '3 B'); + .should('contain', '2') + .and('contain', '3 B') + .and('contain', activeUser.user.full_name); cy.get('[data-cy=collection-version-browser-select-3]') .should('not.exist'); cy.get('[data-cy=collection-version-browser-select-1]') @@ -570,21 +636,62 @@ 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') + .and('contain', 'Storage classes') + .and('contain', 'default') + .and('contain', 'foo') + .and('contain', 'bar') .within(() => { cy.get('[data-cy=parent-field]').within(() => { cy.get('input').should('have.value', 'Home project'); - }) + }); cy.get('[data-cy=name-field]').within(() => { cy.get('input').type(collName); - }) + }); + cy.get('[data-cy=checkbox-foo]').click(); }) cy.get('[data-cy=form-submit-btn]').click(); // Confirm that the user was taken to the newly created thing cy.get('[data-cy=form-dialog]').should('not.exist'); cy.get('[data-cy=breadcrumb-first]').should('contain', 'Projects'); cy.get('[data-cy=breadcrumb-last]').should('contain', collName); + cy.get('[data-cy=collection-info-panel]') + .should('contain', 'default') + .and('contain', 'foo') + .and('not.contain', 'bar'); + }); + + it('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); + }); }); })