X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/576cd73ae073187557df3239ca301c16eaca7ae9..9183367d596ef3082d0e81ec459c9813ed69e805:/cypress/integration/process.spec.js diff --git a/cypress/integration/process.spec.js b/cypress/integration/process.spec.js index 84c786bd..f4461b75 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" + } + } } ]; @@ -883,13 +1020,22 @@ describe('Process tests', function() { verifyIOParameter('input_file_array', null, null, 'input2.tar', '00000000000000000000000000000000+02'); 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_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_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) => {