X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/927f7b8743df91a181130328857123c72e52ebd2..9183367d596ef3082d0e81ec459c9813ed69e805:/cypress/integration/process.spec.js diff --git a/cypress/integration/process.spec.js b/cypress/integration/process.spec.js index f4e5757803..f4461b75d1 100644 --- a/cypress/integration/process.spec.js +++ b/cypress/integration/process.spec.js @@ -106,13 +106,50 @@ describe('Process tests', function() { }, event_type: 'stdout' }).then(function(log) { - cy.get('[data-cy=process-logs]') + cy.get('[data-cy=process-logs]', {timeout: 7000}) .should('not.contain', 'No logs yet') .and('contain', 'hello world'); }) }); }); + it('shows process details', function() { + createContainerRequest( + activeUser, + `test_container_request ${Math.floor(Math.random() * 999999)}`, + 'arvados/jobs', + ['echo', 'hello world'], + false, 'Committed') + .then(function(containerRequest) { + cy.loginAs(activeUser); + cy.goToPath(`/processes/${containerRequest.uuid}`); + cy.get('[data-cy=process-details]').should('contain', containerRequest.name); + cy.get('[data-cy=process-details-attributes-modifiedby-user]').contains(`Active User (${activeUser.user.uuid})`); + cy.get('[data-cy=process-details-attributes-runtime-user]').should('not.exist'); + }); + + // Fake submitted by another user + cy.intercept({method: 'GET', url: '**/arvados/v1/container_requests/*'}, (req) => { + req.reply((res) => { + res.body.modified_by_user_uuid = 'zzzzz-tpzed-000000000000000'; + }); + }); + + createContainerRequest( + activeUser, + `test_container_request ${Math.floor(Math.random() * 999999)}`, + 'arvados/jobs', + ['echo', 'hello world'], + false, 'Committed') + .then(function(containerRequest) { + cy.loginAs(activeUser); + cy.goToPath(`/processes/${containerRequest.uuid}`); + cy.get('[data-cy=process-details]').should('contain', containerRequest.name); + cy.get('[data-cy=process-details-attributes-modifiedby-user]').contains(`zzzzz-tpzed-000000000000000`); + cy.get('[data-cy=process-details-attributes-runtime-user]').contains(`Active User (${activeUser.user.uuid})`); + }); + }); + it('filters process logs by event type', function() { const nodeInfoLogs = [ 'Host Information', @@ -169,7 +206,7 @@ describe('Process tests', function() { cy.loginAs(activeUser); cy.goToPath(`/processes/${containerRequest.uuid}`); // Should show main logs by default - cy.get('[data-cy=process-logs-filter]').should('contain', 'Main logs'); + cy.get('[data-cy=process-logs-filter]', {timeout: 7000}).should('contain', 'Main logs'); cy.get('[data-cy=process-logs]') .should('contain', stdoutLogs[Math.floor(Math.random() * stdoutLogs.length)]) .and('not.contain', nodeInfoLogs[Math.floor(Math.random() * nodeInfoLogs.length)]) @@ -263,14 +300,14 @@ describe('Process tests', function() { cy.getAll('@containerRequest').then(function([containerRequest]) { cy.goToPath(`/processes/${containerRequest.uuid}`); - cy.get('[data-cy=process-runtime-status-retry-warning]') + cy.get('[data-cy=process-runtime-status-retry-warning]', {timeout: 7000}) .should('contain', 'Process retried 1 time'); }); cy.getAll('@containerRequest').then(function([containerRequest]) { containerCount = 3; cy.goToPath(`/processes/${containerRequest.uuid}`); - cy.get('[data-cy=process-runtime-status-retry-warning]') + cy.get('[data-cy=process-runtime-status-retry-warning]', {timeout: 7000}) .should('contain', 'Process retried 2 times'); }); }); @@ -403,6 +440,9 @@ describe('Process tests', function() { "location": "keep:00000000000000000000000000000000+03/input3-2.txt" } ] + }, + { + "$import": "import_path" } ] } @@ -426,6 +466,9 @@ describe('Process tests', function() { "basename": "11111111111111111111111111111111+03", "class": "Directory", "location": "keep:11111111111111111111111111111111+03" + }, + { + "$import": "import_path" } ] } @@ -442,7 +485,10 @@ describe('Process tests', function() { "input_int_array": [ 1, 3, - 5 + 5, + { + "$import": "import_path" + } ] } }, @@ -457,7 +503,10 @@ describe('Process tests', function() { input: { "input_long_array": [ 10, - 20 + 20, + { + "$import": "import_path" + } ] } }, @@ -473,7 +522,10 @@ describe('Process tests', function() { "input_float_array": [ 10.2, 10.4, - 10.6 + 10.6, + { + "$import": "import_path" + } ] } }, @@ -489,7 +541,10 @@ describe('Process tests', function() { "input_double_array": [ 20.1, 20.2, - 20.3 + 20.3, + { + "$import": "import_path" + } ] } }, @@ -505,9 +560,91 @@ describe('Process tests', function() { "input_string_array": [ "Hello", "World", - "!" + "!", + { + "$import": "import_path" + } ] } + }, + { + definition: { + "id": "#main/input_bool_include", + "type": "boolean" + }, + input: { + "input_bool_include": { + "$include": "include_path" + } + } + }, + { + definition: { + "id": "#main/input_int_include", + "type": "int" + }, + input: { + "input_int_include": { + "$include": "include_path" + } + } + }, + { + definition: { + "id": "#main/input_float_include", + "type": "float" + }, + input: { + "input_float_include": { + "$include": "include_path" + } + } + }, + { + definition: { + "id": "#main/input_string_include", + "type": "string" + }, + input: { + "input_string_include": { + "$include": "include_path" + } + } + }, + { + definition: { + "id": "#main/input_file_include", + "type": "File" + }, + input: { + "input_file_include": { + "$include": "include_path" + } + } + }, + { + definition: { + "id": "#main/input_directory_include", + "type": "Directory" + }, + input: { + "input_directory_include": { + "$include": "include_path" + } + } + }, + { + definition: { + "id": "#main/input_file_url", + "type": "File" + }, + input: { + "input_file_url": { + "basename": "index.html", + "class": "File", + "location": "http://example.com/index.html" + } + } } ]; @@ -869,13 +1006,11 @@ describe('Process tests', function() { cy.goToPath(`/processes/${containerRequest.uuid}`); cy.get('[data-cy=process-io-card] h6').contains('Inputs') .parents('[data-cy=process-io-card]').within(() => { - cy.wait(2000); - cy.waitForDom(); verifyIOParameter('input_file', null, "Label Description", 'input1.tar', '00000000000000000000000000000000+01'); - verifyIOParameter('input_file', null, "Label Description", 'input1-2.txt', '00000000000000000000000000000000+01', true); - verifyIOParameter('input_file', null, "Label Description", 'input1-3.txt', '00000000000000000000000000000000+01', true); - verifyIOParameter('input_file', null, "Label Description", 'input1-4.txt', '00000000000000000000000000000000+01', true); - verifyIOParameter('input_dir', null, "Doc Description", 'No value', '11111111111111111111111111111111+01'); + verifyIOParameter('input_file', null, "Label Description", 'input1-2.txt', undefined, true); + verifyIOParameter('input_file', null, "Label Description", 'input1-3.txt', undefined, true); + verifyIOParameter('input_file', null, "Label Description", 'input1-4.txt', undefined, true); + verifyIOParameter('input_dir', null, "Doc Description", '/', '11111111111111111111111111111111+01'); verifyIOParameter('input_bool', null, "Doc desc 1, Doc desc 2", 'true'); verifyIOParameter('input_int', null, null, '1'); verifyIOParameter('input_long', null, null, '1'); @@ -883,27 +1018,36 @@ describe('Process tests', function() { verifyIOParameter('input_double', null, null, '1.3'); verifyIOParameter('input_string', null, null, 'Hello World'); verifyIOParameter('input_file_array', null, null, 'input2.tar', '00000000000000000000000000000000+02'); - verifyIOParameter('input_file_array', null, null, 'input3.tar', '00000000000000000000000000000000+03', true); - verifyIOParameter('input_file_array', null, null, 'input3-2.txt', '00000000000000000000000000000000+03', true); - verifyIOParameter('input_dir_array', null, null, 'No value', '11111111111111111111111111111111+02'); - verifyIOParameter('input_dir_array', null, null, 'No value', '11111111111111111111111111111111+03', true); - verifyIOParameter('input_int_array', null, null, ["1", "3", "5"]); - verifyIOParameter('input_long_array', null, null, ["10", "20"]); - verifyIOParameter('input_float_array', null, null, ["10.2", "10.4", "10.6"]); - verifyIOParameter('input_double_array', null, null, ["20.1", "20.2", "20.3"]); - verifyIOParameter('input_string_array', null, null, ["Hello", "World", "!"]); + verifyIOParameter('input_file_array', null, null, 'input3.tar', undefined, true); + verifyIOParameter('input_file_array', null, null, 'input3-2.txt', undefined, true); + verifyIOParameter('input_file_array', null, null, 'Cannot display value', undefined, true); + verifyIOParameter('input_dir_array', null, null, '/', '11111111111111111111111111111111+02'); + verifyIOParameter('input_dir_array', null, null, '/', '11111111111111111111111111111111+03', true); + verifyIOParameter('input_dir_array', null, null, 'Cannot display value', undefined, true); + verifyIOParameter('input_int_array', null, null, ["1", "3", "5", "Cannot display value"]); + verifyIOParameter('input_long_array', null, null, ["10", "20", "Cannot display value"]); + verifyIOParameter('input_float_array', null, null, ["10.2", "10.4", "10.6", "Cannot display value"]); + verifyIOParameter('input_double_array', null, null, ["20.1", "20.2", "20.3", "Cannot display value"]); + verifyIOParameter('input_string_array', null, null, ["Hello", "World", "!", "Cannot display value"]); + verifyIOParameter('input_bool_include', null, null, "Cannot display value"); + verifyIOParameter('input_int_include', null, null, "Cannot display value"); + verifyIOParameter('input_float_include', null, null, "Cannot display value"); + verifyIOParameter('input_string_include', null, null, "Cannot display value"); + verifyIOParameter('input_file_include', null, null, "Cannot display value"); + verifyIOParameter('input_directory_include', null, null, "Cannot display value"); + verifyIOParameter('input_file_url', null, null, "http://example.com/index.html"); }); cy.get('[data-cy=process-io-card] h6').contains('Outputs') .parents('[data-cy=process-io-card]').within((ctx) => { cy.get(ctx).scrollIntoView(); - cy.waitForDom().get('[data-cy="io-preview-image-toggle"]').click(); + cy.get('[data-cy="io-preview-image-toggle"]').click(); const outPdh = testOutputCollection.portable_data_hash; verifyIOParameter('output_file', null, "Label Description", 'cat.png', `${outPdh}`); verifyIOParameterImage('output_file', `/c=${outPdh}/cat.png`); verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'main.dat', `${outPdh}`); - verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'secondary.dat', `${outPdh}`, true); - verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'secondary2.dat', `${outPdh}`, true); + verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'secondary.dat', undefined, true); + verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'secondary2.dat', undefined, true); verifyIOParameter('output_dir', null, "Doc desc 1, Doc desc 2", 'outdir1', `${outPdh}`); verifyIOParameter('output_bool', null, null, 'true'); verifyIOParameter('output_int', null, null, '1'); @@ -912,9 +1056,9 @@ describe('Process tests', function() { verifyIOParameter('output_double', null, null, '100.3'); verifyIOParameter('output_string', null, null, 'Hello output'); verifyIOParameter('output_file_array', null, null, 'output2.tar', `${outPdh}`); - verifyIOParameter('output_file_array', null, null, 'output3.tar', `${outPdh}`, true); + verifyIOParameter('output_file_array', null, null, 'output3.tar', undefined, true); verifyIOParameter('output_dir_array', null, null, 'outdir2', `${outPdh}`); - verifyIOParameter('output_dir_array', null, null, 'outdir3', `${outPdh}`, true); + verifyIOParameter('output_dir_array', null, null, 'outdir3', undefined, true); verifyIOParameter('output_int_array', null, null, ["10", "11", "12"]); verifyIOParameter('output_long_array', null, null, ["51", "52"]); verifyIOParameter('output_float_array', null, null, ["100.2", "100.4", "100.6"]);