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', undefined, true);
verifyIOParameter('input_file', null, "Label Description", 'input1-3.txt', undefined, true);
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}`);
}
}, [containerRequest, fetchOutputs]);
- // Format raw output into ProcessIOParameter[] when it changes
+ // Fetch outputDefinitons from mounts whenever containerRequest is updated
React.useEffect(() => {
- if (outputDetails !== undefined && outputDetails.rawOutputs && containerRequest) {
+ if (containerRequest && containerRequest.mounts) {
const newOutputDefinitions = getOutputParameters(containerRequest);
- // Avoid setting output definitions back to [] when mounts briefly go missing
+ // Avoid setting output definitions to [] when mounts briefly go missing
if (newOutputDefinitions.length) {
setOutputDefinitions(newOutputDefinitions);
}
+ }
+ }, [containerRequest]);
+
+ // Format raw output into ProcessIOParameter[] when it changes
+ React.useEffect(() => {
+ if (outputDetails !== undefined && outputDetails.rawOutputs) {
+ // Update processed outputs as long as outputDetails is loaded (or failed to load with {} rawOutputs)
setProcessedOutputs(formatOutputData(outputDefinitions, outputDetails.rawOutputs, outputDetails.pdh, auth));
}
- }, [outputDetails, auth, containerRequest, outputDefinitions]);
+ }, [outputDetails, auth, outputDefinitions]);
// Fetch raw inputs and format into ProcessIOParameter[]
// Can be sync because inputs are either already in containerRequest mounts or props