Merge branch '22052-container-columns-excluded-fulltext'
[arvados.git] / services / workbench2 / cypress / e2e / create-workflow.cy.js
index c8acc6734888a41da01a1fe4c21e3680a8bb0944..f4e4a92c8d0d72b1aaba469769ed15c70ac8d5eb 100644 (file)
@@ -12,7 +12,7 @@ describe('Create workflow tests', function () {
                 adminUser = this.adminUser;
             }
             );
-        cy.getUser('collectionuser1', 'Collection', 'User', false, true)
+        cy.getUser('activeuser', 'Active', 'User', false, true)
             .as('activeUser').then(function () {
                 activeUser = this.activeUser;
             }
@@ -276,4 +276,61 @@ describe('Create workflow tests', function () {
 
             });
     })
+
+    it('handles secret inputs', () => {
+        cy.createProject({
+            owningUser: activeUser,
+            projectName: 'myProject1',
+            addToFavorites: true
+        });
+
+        cy.setupDockerImage("arvados/jobs").as("dockerImg");
+
+        cy.getAll('@myProject1').then(function ([myProject1]) {
+                cy.readFile('cypress/fixtures/workflow_with_secret_input.yaml').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 workflow').click();
+
+                cy.get('@testWorkflow')
+                    .then((testWorkflow) => {
+                        cy.get('main').contains(testWorkflow.name).click();
+                        cy.get('[data-cy=run-process-next-button]').click();
+
+                        var foo = cy.get('label').contains('foo').parent('div').find('input');
+                        foo.type("secret_value_xyz");
+                        foo.should('have.attr', 'type').and('equal', 'password');
+
+                        var bar = cy.get('label').contains('bar').parent('div').find('input');
+                        bar.type("exposed_value_xyz");
+                        bar.should('have.attr', 'type').and('equal', 'text');
+                    });
+            cy.get('[data-cy=new-process-panel]').contains('Run workflow').click();
+
+            cy.get('[data-cy=process-io-card]').should('contain', 'exposed_value_xyz');
+            cy.get('[data-cy=process-io-card]').should('contain', 'Cannot display secret');
+            cy.get('[data-cy=process-io-card]').should('not.contain', 'secret_value_xyz');
+
+            cy.url().then((url) => {
+                let uuid = url.split('/').pop();
+                cy.getResource(activeUser.token, "container_requests", uuid).then((res) => {
+                    expect(res.mounts["/var/lib/cwl/cwl.input.json"].content.bar).to.equal('exposed_value_xyz');
+                    expect(res.mounts["/var/lib/cwl/cwl.input.json"].content.foo).to.deep.equal({$include: '/secrets/s0'});
+                });
+            });
+
+        });
+    });
 })