one instance test left for cypress w/ burnettk

This commit is contained in:
jasquat 2022-11-09 12:33:43 -05:00
parent afa8aae60e
commit cb8ea4d966
4 changed files with 76 additions and 52 deletions

View File

@ -13,8 +13,8 @@ from spiffworkflow_backend.models.process_instance import ProcessInstanceStatus
def load_acceptance_test_fixtures() -> list[ProcessInstanceModel]:
"""Load_fixtures."""
current_app.logger.debug("load_acceptance_test_fixtures() start")
test_process_group_id = "acceptance-tests-group-one"
test_process_model_id = "acceptance-tests-model-1"
test_process_group_id = ""
test_process_model_id = "acceptance-tests-group-one/acceptance-tests-model-1"
user = BaseTest.find_or_create_user()
statuses = ProcessInstanceStatus.list()
current_time = round(time.time())

View File

@ -3,10 +3,10 @@ import { DATE_FORMAT, PROCESS_STATUSES } from '../../src/config';
const filterByDate = (fromDate) => {
cy.get('#date-picker-start-from').clear().type(format(fromDate, DATE_FORMAT));
cy.contains('Start Range').click();
cy.contains('Start date from').click();
cy.get('#date-picker-end-from').clear().type(format(fromDate, DATE_FORMAT));
cy.contains('Start Range').click();
cy.contains('Filter').click();
cy.contains('End date from').click();
cy.getBySel('filter-button').click();
};
const updateDmnText = (oldText, newText, elementId = 'wonderful_process') => {
@ -165,25 +165,27 @@ describe('process-instances', () => {
cy.basicPaginationTest();
});
it('can filter', () => {
it.only('can filter', () => {
cy.getBySel('process-instance-list-link').click();
cy.assertAtLeastOneItemInPaginatedResults();
PROCESS_STATUSES.forEach((processStatus) => {
if (!['all', 'waiting'].includes(processStatus)) {
cy.get('[name=process-status-selection]').click();
cy.get('[name=process-status-selection]').type(processStatus);
cy.get(`[aria-label=${processStatus}]`).click();
cy.contains('Process Status').click();
cy.contains('Filter').click();
cy.assertAtLeastOneItemInPaginatedResults();
cy.getBySel(`process-instance-status-${processStatus}`).contains(
processStatus
);
// there should really only be one, but in CI there are sometimes more
cy.get('button[aria-label=Remove]:first').click();
}
});
// PROCESS_STATUSES.forEach((processStatus) => {
// if (!['all', 'waiting'].includes(processStatus)) {
// cy.get('#process-instance-status-select').click();
// cy.get('#process-instance-status-select')
// .contains(processStatus)
// .click();
// // close the dropdown again
// cy.get('#process-instance-status-select').click();
// cy.getBySel('filter-button').click();
// cy.assertAtLeastOneItemInPaginatedResults();
// cy.getBySel(`process-instance-status-${processStatus}`).contains(
// processStatus
// );
// // there should really only be one, but in CI there are sometimes more
// cy.get('div[aria-label="Clear all selected items"]:first').click();
// }
// });
const date = new Date();
date.setHours(date.getHours() - 1);

View File

@ -17,11 +17,12 @@ import {
Grid,
Column,
MultiSelect,
// TableHeader,
// TableHead,
// TableRow,
// TableBody,
// TableCell,
TableHeader,
TableHead,
TableRow,
TableBody,
TableCell,
Row,
// @ts-ignore
} from '@carbon/react';
import { PROCESS_STATUSES, DATE_FORMAT, DATE_FORMAT_CARBON } from '../config';
@ -113,6 +114,7 @@ export default function ProcessInstanceList() {
searchParamValue as any
);
functionToCall(dateString);
setShowFilterOptions(true);
}
});
@ -125,6 +127,7 @@ export default function ProcessInstanceList() {
if (functionToCall !== null) {
functionToCall(searchParams.get(paramName) || '');
}
setShowFilterOptions(true);
}
}
);
@ -162,6 +165,7 @@ export default function ProcessInstanceList() {
getProcessInstances();
}
// populate process model selection
HttpService.makeCallToBackend({
path: `/process-models?per_page=1000`,
successCallback: processResultForProcessModels,
@ -298,6 +302,7 @@ export default function ProcessInstanceList() {
return (
<MultiSelect
label="Choose Status"
className="our-class"
id="process-instance-status-select"
titleText="Status"
items={processStatusAllOptions}
@ -369,7 +374,11 @@ export default function ProcessInstanceList() {
>
Clear
</Button>
<Button kind="secondary" onClick={applyFilter}>
<Button
kind="secondary"
onClick={applyFilter}
data-qa="filter-button"
>
Filter
</Button>
</ButtonSet>
@ -392,12 +401,13 @@ export default function ProcessInstanceList() {
return headerLabels[header] ?? header;
};
const headers = (reportMetadata as any).columns.map((column: any) => {
return <th>{getHeaderLabel((column as any).Header)}</th>;
// return <th>{getHeaderLabel((column as any).Header)}</th>;
return getHeaderLabel((column as any).Header);
});
const formatProcessInstanceId = (row: any, id: any) => {
const modifiedProcessModelId: String = modifyProcessModelPath(
(row as any).process_model_identifier
row.process_model_identifier
);
return (
<Link
@ -408,7 +418,7 @@ export default function ProcessInstanceList() {
</Link>
);
};
const formatProcessModelIdentifier = (row: any, identifier: any) => {
const formatProcessModelIdentifier = (_row: any, identifier: any) => {
return (
<Link
to={`/admin/process-models/${modifyProcessModelPath(identifier)}`}
@ -417,10 +427,10 @@ export default function ProcessInstanceList() {
</Link>
);
};
const formatSecondsForDisplay = (row: any, seconds: any) => {
const formatSecondsForDisplay = (_row: any, seconds: any) => {
return convertSecondsToFormattedDate(seconds) || '-';
};
const defaultFormatter = (row: any, value: any) => {
const defaultFormatter = (_row: any, value: any) => {
return value;
};
@ -433,20 +443,32 @@ export default function ProcessInstanceList() {
const formattedColumn = (row: any, column: any) => {
const formatter = columnFormatters[column.accessor] ?? defaultFormatter;
const value = row[column.accessor];
if (column.accessor === 'status') {
return (
<td data-qa={`process-instance-status-${value}`}>
{formatter(row, value)}
</td>
);
}
return <td>{formatter(row, value)}</td>;
};
const rows = processInstances.map((row) => {
const rows = processInstances.map((row: any) => {
const currentRow = (reportMetadata as any).columns.map((column: any) => {
return formattedColumn(row, column);
});
return <tr key={(row as any).id}>{currentRow}</tr>;
return <tr key={row.id}>{currentRow}</tr>;
});
return (
<Table size="lg">
<thead>
<tr>{headers}</tr>
</thead>
<TableHead>
<TableRow>
{headers.map((header: any) => (
<TableHeader key={header}>{header}</TableHeader>
))}
</TableRow>
</TableHead>
<tbody>{rows}</tbody>
</Table>
);
@ -482,9 +504,13 @@ export default function ProcessInstanceList() {
<>
{processInstanceTitleElement()}
<Grid fullWidth>
<Column lg={15} />
<Column lg={1}>
<Column
sm={{ span: 1, offset: 3 }}
md={{ span: 1, offset: 7 }}
lg={{ span: 1, offset: 15 }}
>
<Button
data-qa="filter-section-expand-toggle"
kind="ghost"
renderIcon={Filter}
iconDescription="Filter Options"
@ -496,18 +522,14 @@ export default function ProcessInstanceList() {
</Grid>
{filterOptions()}
<br />
<Grid fullWidth>
<Column lg={16}>
<PaginationForTable
page={page}
perPage={perPage}
pagination={pagination}
tableToDisplay={buildTable()}
queryParamString={getSearchParamsAsQueryString()}
path="/admin/process-instances"
/>
</Column>
</Grid>
<PaginationForTable
page={page}
perPage={perPage}
pagination={pagination}
tableToDisplay={buildTable()}
queryParamString={getSearchParamsAsQueryString()}
path="/admin/process-instances"
/>
</>
);
}

View File

@ -88,7 +88,7 @@ export default function ProcessInstanceLogList() {
perPage={perPage}
pagination={pagination}
tableToDisplay={buildTable()}
path={`/admin/process-instances/${params.process_instance_id}/logs`}
path={`/admin/process-models/${modifiedProcessModelId}/process-instances/${params.process_instance_id}/logs`}
/>
</main>
);