X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/98f76da8dcb959f618f7607ea1c1f5c8a6b09523..54805dd83a984d4e34bb35146d2505bac12bc1d0:/cypress/integration/search.spec.js diff --git a/cypress/integration/search.spec.js b/cypress/integration/search.spec.js index 05c345c9..cbb091fd 100644 --- a/cypress/integration/search.spec.js +++ b/cypress/integration/search.spec.js @@ -46,6 +46,7 @@ describe('Search tests', function() { cy.createCollection(adminUser.token, { name: colName, owner_uuid: activeUser.user.uuid, + preserve_version: true, manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n"}) .as('originalVersion').then(function() { // Change the file name to create a new version. @@ -71,13 +72,91 @@ describe('Search tests', function() { cy.loginAs(activeUser); const searchQuery = `${colName} type:arvados#collection`; // Search for only collection's current version - cy.visit(`/search-results?q=${encodeURIComponent(searchQuery)}`); + cy.doSearch(`${searchQuery}`); cy.get('[data-cy=search-results]').should('contain', 'head version'); - cy.get('[data-cy=search-results]').should('not.contain', 'old version'); + cy.get('[data-cy=search-results]').should('not.contain', 'version 1'); // ...and then, include old versions. - cy.visit(`/search-results?q=${encodeURIComponent(searchQuery + ' is:pastVersion')}`); + cy.doSearch(`${searchQuery} is:pastVersion`); cy.get('[data-cy=search-results]').should('contain', 'head version'); - cy.get('[data-cy=search-results]').should('contain', 'old version'); + cy.get('[data-cy=search-results]').should('contain', 'version 1'); + }); + }); + + it('can display path of the selected item', function() { + const colName = `Collection ${Math.floor(Math.random() * Math.floor(999999))}`; + + // Creates the collection using the admin token so we can set up + // a bogus manifest text without block signatures. + cy.createCollection(adminUser.token, { + name: colName, + owner_uuid: activeUser.user.uuid, + preserve_version: true, + manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n" + }).then(function() { + cy.loginAs(activeUser); + + cy.doSearch(colName); + + cy.get('[data-cy=search-results]').should('contain', colName); + + cy.get('[data-cy=search-results]').contains(colName).closest('tr').click(); + + cy.get('[data-cy=element-path]').should('contain', `/ Projects / ${colName}`); + }); + }); + + it.only('can search items using quotes', function() { + const random = Math.floor(Math.random() * Math.floor(999999)); + const colName = `Collection ${random}`; + const colName2 = `Collection test ${random}`; + + // Creates the collection using the admin token so we can set up + // a bogus manifest text without block signatures. + cy.createCollection(adminUser.token, { + name: colName, + owner_uuid: activeUser.user.uuid, + preserve_version: true, + manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n" + }).as('collection1'); + + cy.createCollection(adminUser.token, { + name: colName2, + owner_uuid: activeUser.user.uuid, + preserve_version: true, + manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n" + }).as('collection2'); + + cy.getAll('@collection1', '@collection2') + .then(function() { + cy.loginAs(activeUser); + + cy.doSearch(colName); + cy.get('[data-cy=search-results] table tbody tr').should('have.length', 2); + + cy.doSearch(`"${colName}"`); + cy.get('[data-cy=search-results] table tbody tr').should('have.length', 1); + }); + }); + + it('can display owner of the item', function() { + const colName = `Collection ${Math.floor(Math.random() * Math.floor(999999))}`; + + cy.createCollection(adminUser.token, { + name: colName, + owner_uuid: activeUser.user.uuid, + preserve_version: true, + manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n" + }).then(function() { + cy.loginAs(activeUser); + + cy.doSearch(colName); + + cy.get('[data-cy=search-results]').should('contain', colName); + + cy.get('[data-cy=search-results]').contains(colName).closest('tr') + .within(() => { + cy.get('p').contains(activeUser.user.uuid).should('contain', activeUser.user.full_name); + }); }); }); }); \ No newline at end of file