},
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',
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)])
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');
});
});
"location": "keep:00000000000000000000000000000000+03/input3-2.txt"
}
]
+ },
+ {
+ "$import": "import_path"
}
]
}
"basename": "11111111111111111111111111111111+03",
"class": "Directory",
"location": "keep:11111111111111111111111111111111+03"
+ },
+ {
+ "$import": "import_path"
}
]
}
"input_int_array": [
1,
3,
- 5
+ 5,
+ {
+ "$import": "import_path"
+ }
]
}
},
input: {
"input_long_array": [
10,
- 20
+ 20,
+ {
+ "$import": "import_path"
+ }
]
}
},
"input_float_array": [
10.2,
10.4,
- 10.6
+ 10.6,
+ {
+ "$import": "import_path"
+ }
]
}
},
"input_double_array": [
20.1,
20.2,
- 20.3
+ 20.3,
+ {
+ "$import": "import_path"
+ }
]
}
},
"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"
+ }
+ }
}
];
const verifyIOParameter = (name, label, doc, val, collection, multipleRows) => {
cy.get('table tr').contains(name).parents('tr').within(($mainRow) => {
- doc && cy.contains(doc);
+ label && cy.contains(label);
if (multipleRows) {
cy.get($mainRow).nextUntil('[data-cy="process-io-param"]').as('secondaryRows');
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', 'keep:00000000000000000000000000000000+01');
- verifyIOParameter('input_file', null, "Label Description", 'input1-2.txt', 'keep:00000000000000000000000000000000+01', true);
- verifyIOParameter('input_file', null, "Label Description", 'input1-3.txt', 'keep:00000000000000000000000000000000+01', true);
- verifyIOParameter('input_file', null, "Label Description", 'input1-4.txt', 'keep:00000000000000000000000000000000+01', true);
- verifyIOParameter('input_dir', null, "Doc Description", 'No value', 'keep:11111111111111111111111111111111+01');
+ verifyIOParameter('input_file', null, "Label Description", 'input1.tar', '00000000000000000000000000000000+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');
verifyIOParameter('input_float', null, null, '1.5');
verifyIOParameter('input_double', null, null, '1.3');
verifyIOParameter('input_string', null, null, 'Hello World');
- verifyIOParameter('input_file_array', null, null, 'input2.tar', 'keep:00000000000000000000000000000000+02');
- verifyIOParameter('input_file_array', null, null, 'input3.tar', 'keep:00000000000000000000000000000000+03', true);
- verifyIOParameter('input_file_array', null, null, 'input3-2.txt', 'keep:00000000000000000000000000000000+03', true);
- verifyIOParameter('input_dir_array', null, null, 'No value', 'keep:11111111111111111111111111111111+02');
- verifyIOParameter('input_dir_array', null, null, 'No value', 'keep: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, '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_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");
});
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', `keep:${outPdh}`);
+ 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', `keep:${outPdh}`);
- verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'secondary.dat', `keep:${outPdh}`, true);
- verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'secondary2.dat', `keep:${outPdh}`, true);
- verifyIOParameter('output_dir', null, "Doc desc 1, Doc desc 2", 'outdir1', `keep:${outPdh}`);
+ verifyIOParameter('output_file_with_secondary', null, "Doc Description", 'main.dat', `${outPdh}`);
+ 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');
verifyIOParameter('output_long', null, null, '1');
verifyIOParameter('output_float', null, null, '100.5');
verifyIOParameter('output_double', null, null, '100.3');
verifyIOParameter('output_string', null, null, 'Hello output');
- verifyIOParameter('output_file_array', null, null, 'output2.tar', `keep:${outPdh}`);
- verifyIOParameter('output_file_array', null, null, 'output3.tar', `keep:${outPdh}`, true);
- verifyIOParameter('output_dir_array', null, null, 'outdir2', `keep:${outPdh}`);
- verifyIOParameter('output_dir_array', null, null, 'outdir3', `keep:${outPdh}`, true);
+ verifyIOParameter('output_file_array', null, null, 'output2.tar', `${outPdh}`);
+ 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', 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"]);