X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a7c16589e1ae08addbd6a9aee75d5f90c1704e5c..fcfb353fa27b5399e44f32944e0d53015b89a3b8:/cypress/integration/collection.spec.js diff --git a/cypress/integration/collection.spec.js b/cypress/integration/collection.spec.js index ea5076e1e7..151700768f 100644 --- a/cypress/integration/collection.spec.js +++ b/cypress/integration/collection.spec.js @@ -32,7 +32,7 @@ describe('Collection panel tests', function () { cy.clearLocalStorage(); }); - it.only('allows to download mountain duck config for a collection', () => { + it('allows to download mountain duck config for a collection', () => { cy.createCollection(adminUser.token, { name: `Test collection ${Math.floor(Math.random() * 999999)}`, owner_uuid: activeUser.user.uuid, @@ -40,7 +40,7 @@ describe('Collection panel tests', function () { }) .as('testCollection').then(function (testCollection) { cy.loginAs(activeUser); - cy.doSearch(`${testCollection.uuid}`); + 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(); @@ -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; } @@ -66,6 +66,9 @@ describe('Collection panel tests', function () { expect(map['Username']).to.equal(activeUser.user.username); expect(map['Port']).to.equal(port); expect(map['Hostname']).to.equal(host); + if (map['Path']) { + expect(map['Path']).to.equal(`/c=${testCollection.uuid}`); + } }); }) .then(() => cy.task('clearDownload', { filename })); @@ -80,7 +83,7 @@ describe('Collection panel tests', function () { }) .as('testCollection').then(function () { cy.loginAs(activeUser); - cy.doSearch(`${this.testCollection.uuid}`); + cy.goToPath(`/collections/${this.testCollection.uuid}`); // Key: Color (IDTAGCOLORS) - Value: Magenta (IDVALCOLORS3) cy.get('[data-cy=resource-properties-form]').within(() => { @@ -113,6 +116,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', @@ -123,7 +127,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. @@ -133,7 +137,7 @@ describe('Collection panel tests', function () { head_uuid: this.sharedGroup.uuid, tail_uuid: activeUser.user.uuid }) - cy.doSearch(`${this.testCollection.uuid}`); + cy.goToPath(`/collections/${this.testCollection.uuid}`); // Check that name & uuid are correct. cy.get('[data-cy=collection-info-panel]') @@ -181,6 +185,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]') @@ -190,6 +195,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() @@ -199,16 +213,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 }) }) }) @@ -229,7 +235,7 @@ describe('Collection panel tests', function () { }) .as('testCollection').then(function () { cy.loginAs(activeUser); - cy.doSearch(`${this.testCollection.uuid}`); + cy.goToPath(`/collections/${this.testCollection.uuid}`); const names = [ 'bar', // initial name already set @@ -282,7 +288,7 @@ describe('Collection panel tests', function () { }) .as('testCollection').then(function () { cy.loginAs(activeUser); - cy.doSearch(`${this.testCollection.uuid}`); + cy.goToPath(`/collections/${this.testCollection.uuid}`); ['subdir', 'G%C3%BCnter\'s%20file', 'table%&?*2'].forEach((subdir) => { cy.get('[data-cy=collection-files-panel]') @@ -339,7 +345,7 @@ describe('Collection panel tests', function () { }) .as('testCollection').then(function () { cy.loginAs(activeUser); - cy.doSearch(`${this.testCollection.uuid}`); + cy.goToPath(`/collections/${this.testCollection.uuid}`); const illegalNamesFromUI = [ ['.', "Name cannot be '.' or '..'"], @@ -415,7 +421,7 @@ describe('Collection panel tests', function () { }); // Check the old version displays as what it is. cy.loginAs(activeUser) - cy.doSearch(`${oldVersionUuid}`); + cy.goToPath(`/collections/${oldVersionUuid}`); cy.get('[data-cy=collection-info-panel]').should('contain', 'This is an old version'); cy.get('[data-cy=read-only-icon]').should('exist'); @@ -438,7 +444,7 @@ describe('Collection panel tests', function () { .as('collection').then(function () { // Visit collection, check basic information cy.loginAs(activeUser) - cy.doSearch(`${this.collection.uuid}`); + cy.goToPath(`/collections/${this.collection.uuid}`); cy.get('[data-cy=collection-info-panel]').should('not.contain', 'This is an old version'); cy.get('[data-cy=read-only-icon]').should('not.exist'); @@ -554,7 +560,7 @@ describe('Collection panel tests', function () { it('creates new collection on home project', function () { cy.loginAs(activeUser); - cy.doSearch(`${activeUser.user.uuid}`); + cy.goToPath(`/projects/${activeUser.user.uuid}`); cy.get('[data-cy=breadcrumb-first]').should('contain', 'Projects'); cy.get('[data-cy=breadcrumb-last]').should('not.exist'); // Create new collection