X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4f87358795fd7e711cf02ae5e2aed849c7555393..a7a2a54903e0f7cb058848dc3294e19802c45cc5:/cypress/integration/create-workflow.spec.js diff --git a/cypress/integration/create-workflow.spec.js b/cypress/integration/create-workflow.spec.js index 0059499855..4da747578c 100644 --- a/cypress/integration/create-workflow.spec.js +++ b/cypress/integration/create-workflow.spec.js @@ -111,4 +111,102 @@ describe('Multi-file deletion tests', function () { .find('button').contains('Run Process').should('not.be.disabled'); }); }); + + ['workflow_with_array_fields.yaml', 'workflow_with_default_array_fields.yaml'].forEach((yamlfile) => + it('can select multi files when creating workflow '+yamlfile, () => { + cy.createProject({ + owningUser: activeUser, + projectName: 'myProject1', + addToFavorites: true + }); + + 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. 37b51d194a7513e45b56f6524f2d51f2+3 0:3:baz\n" + }) + .as('testCollection'); + + cy.createCollection(adminUser.token, { + name: `Test collection ${Math.floor(Math.random() * 999999)}`, + owner_uuid: activeUser.user.uuid, + manifest_text: `. 37b51d194a7513e45b56f6524f2d51f2+3 0:3:buz\n` + }) + .as('testCollection2'); + + cy.getAll('@myProject1', '@testCollection', '@testCollection2') + .then(function ([myProject1, testCollection, testCollection2]) { + cy.readFile('cypress/fixtures/'+yamlfile).then(workflow => { + cy.createWorkflow(adminUser.token, { + name: `TestWorkflow${Math.floor(Math.random() * 999999)}.cwl`, + definition: workflow, + owner_uuid: myProject1.uuid, + }) + .as('testWorkflow'); + }); + + cy.loginAs(activeUser); + + cy.get('main').contains(myProject1.name).click(); + + cy.get('[data-cy=side-panel-button]').click(); + + cy.get('#aside-menu-list').contains('Run a process').click(); + + cy.get('@testWorkflow') + .then((testWorkflow) => { + cy.get('main').contains(testWorkflow.name).click(); + cy.get('[data-cy=run-process-next-button]').click(); + + cy.get('label').contains('#main/foo').parent('div').find('input').click(); + cy.get('div[role=dialog]') + .within(() => { + cy.get('p').contains('Projects').closest('div[role=button]') + .within(() => { + cy.get('svg[role=presentation]') + .click({ multiple: true }); + }); + + cy.get(`[data-id=${testCollection.uuid}]`) + .find('i').click(); + + cy.contains('bar').closest('[data-action=TOGGLE_ACTIVE]').parent().find('input[type=checkbox]').click(); + + cy.contains('baz').closest('[data-action=TOGGLE_ACTIVE]').parent().find('input[type=checkbox]').click(); + + cy.get('[data-cy=ok-button]').click(); + }); + + cy.get('label').contains('#main/bar').parent('div').find('input').click(); + cy.get('div[role=dialog]') + .within(() => { + cy.get('p').contains('Projects').closest('div[role=button]') + .within(() => { + cy.get('svg[role=presentation]') + .click({ multiple: true }); + }); + + cy.get(`[data-id=${testCollection.uuid}]`) + .find('input[type=checkbox]').click(); + + cy.get(`[data-id=${testCollection2.uuid}]`) + .find('input[type=checkbox]').click(); + + cy.get('[data-cy=ok-button]').click(); + }); + }); + + cy.get('label').contains('#main/foo').parent('div') + .within(() => { + cy.contains('baz'); + cy.contains('bar'); + }); + + cy.get('label').contains('#main/bar').parent('div') + .within(() => { + cy.contains(testCollection.name); + cy.contains(testCollection2.name); + }); + }); + })); })