Skip to content

Commit 0c9baa7

Browse files
Add default end time for workflow listing (#865)
* Add default end time for workflow listing, to fix bug with redundant workflows being fetched due to backend pagination logic * Fix default query params setting for archival, to be similar to basic visibility
1 parent 1cfd491 commit 0c9baa7

File tree

4 files changed

+25
-48
lines changed

4 files changed

+25
-48
lines changed

src/views/domain-page/__fixtures__/domain-page-query-params.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const mockDomainPageQueryParamsValues = {
66
search: '',
77
statuses: undefined,
88
timeRangeStart: undefined,
9-
timeRangeEnd: undefined,
9+
timeRangeEnd: new Date('2024-12-17T03:24:00'),
1010
sortColumn: 'startTime',
1111
sortOrder: 'DESC',
1212
query: '',
@@ -18,8 +18,8 @@ export const mockDomainPageQueryParamsValues = {
1818
inputTypeArchival: 'search',
1919
searchArchival: '',
2020
statusesArchival: undefined,
21-
timeRangeStartArchival: undefined,
22-
timeRangeEndArchival: undefined,
21+
timeRangeStartArchival: new Date('2024-11-17T03:24:00'),
22+
timeRangeEndArchival: new Date('2024-12-17T03:24:00'),
2323
sortColumnArchival: 'startTime',
2424
sortOrderArchival: 'DESC',
2525
queryArchival: '',

src/views/domain-page/config/domain-page-query-params.config.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
import dayjs from '@/utils/datetime/dayjs';
66
import parseDateQueryParam from '@/utils/datetime/parse-date-query-param';
77
import { type SortOrder } from '@/utils/sort-by';
8+
import DOMAIN_WORKFLOWS_ARCHIVAL_START_DAYS_CONFIG from '@/views/domain-workflows-archival/config/domain-workflows-archival-start-days.config';
89
import { type WorkflowStatusClosed } from '@/views/domain-workflows-archival/domain-workflows-archival-header/domain-workflows-archival-header.types';
910
import DOMAIN_WORKFLOWS_BASIC_START_DAYS_CONFIG from '@/views/domain-workflows-basic/config/domain-workflows-basic-start-days.config';
1011
import { type WorkflowStatusBasicVisibility } from '@/views/domain-workflows-basic/domain-workflows-basic-filters/domain-workflows-basic-filters.types';
@@ -13,13 +14,15 @@ import isWorkflowStatus from '@/views/shared/workflow-status-tag/helpers/is-work
1314
import { type WorkflowStatus } from '@/views/shared/workflow-status-tag/workflow-status-tag.types';
1415
import { type WorkflowsHeaderInputType } from '@/views/shared/workflows-header/workflows-header.types';
1516

17+
const now = dayjs();
18+
1619
const domainPageQueryParamsConfig: [
1720
PageQueryParam<'inputType', WorkflowsHeaderInputType>,
1821
// Search input
1922
PageQueryParam<'search', string>,
2023
PageQueryParamMultiValue<'statuses', Array<WorkflowStatus> | undefined>,
2124
PageQueryParam<'timeRangeStart', Date | undefined>,
22-
PageQueryParam<'timeRangeEnd', Date | undefined>,
25+
PageQueryParam<'timeRangeEnd', Date>,
2326
PageQueryParam<'sortColumn', string>,
2427
PageQueryParam<'sortOrder', SortOrder>,
2528
// Query input
@@ -37,8 +40,8 @@ const domainPageQueryParamsConfig: [
3740
'statusesArchival',
3841
Array<WorkflowStatusClosed> | undefined
3942
>,
40-
PageQueryParam<'timeRangeStartArchival', Date | undefined>,
41-
PageQueryParam<'timeRangeEndArchival', Date | undefined>,
43+
PageQueryParam<'timeRangeStartArchival', Date>,
44+
PageQueryParam<'timeRangeEndArchival', Date>,
4245
PageQueryParam<'sortColumnArchival', string>,
4346
PageQueryParam<'sortOrderArchival', SortOrder>,
4447
PageQueryParam<'queryArchival', string>,
@@ -68,7 +71,8 @@ const domainPageQueryParamsConfig: [
6871
{
6972
key: 'timeRangeEnd',
7073
queryParamKey: 'end',
71-
parseValue: parseDateQueryParam,
74+
defaultValue: now.toDate(),
75+
parseValue: (v) => parseDateQueryParam(v) ?? now.toDate(),
7276
},
7377
{
7478
key: 'sortColumn',
@@ -102,20 +106,18 @@ const domainPageQueryParamsConfig: [
102106
{
103107
key: 'timeRangeStartBasic',
104108
queryParamKey: 'start',
105-
defaultValue: dayjs()
109+
defaultValue: now
106110
.subtract(DOMAIN_WORKFLOWS_BASIC_START_DAYS_CONFIG, 'days')
107111
.toDate(),
108112
parseValue: (v) =>
109113
parseDateQueryParam(v) ??
110-
dayjs()
111-
.subtract(DOMAIN_WORKFLOWS_BASIC_START_DAYS_CONFIG, 'days')
112-
.toDate(),
114+
now.subtract(DOMAIN_WORKFLOWS_BASIC_START_DAYS_CONFIG, 'days').toDate(),
113115
},
114116
{
115117
key: 'timeRangeEndBasic',
116118
queryParamKey: 'end',
117-
defaultValue: dayjs().toDate(),
118-
parseValue: (v) => parseDateQueryParam(v) ?? dayjs().toDate(),
119+
defaultValue: now.toDate(),
120+
parseValue: (v) => parseDateQueryParam(v) ?? now.toDate(),
119121
},
120122
{
121123
key: 'inputTypeArchival',
@@ -144,12 +146,20 @@ const domainPageQueryParamsConfig: [
144146
{
145147
key: 'timeRangeStartArchival',
146148
queryParamKey: 'astart',
147-
parseValue: parseDateQueryParam,
149+
defaultValue: now
150+
.subtract(DOMAIN_WORKFLOWS_ARCHIVAL_START_DAYS_CONFIG, 'days')
151+
.toDate(),
152+
parseValue: (v) =>
153+
parseDateQueryParam(v) ??
154+
now
155+
.subtract(DOMAIN_WORKFLOWS_ARCHIVAL_START_DAYS_CONFIG, 'days')
156+
.toDate(),
148157
},
149158
{
150159
key: 'timeRangeEndArchival',
151160
queryParamKey: 'aend',
152-
parseValue: parseDateQueryParam,
161+
defaultValue: now.toDate(),
162+
parseValue: (v) => parseDateQueryParam(v) ?? now.toDate(),
153163
},
154164
{
155165
key: 'sortColumnArchival',

src/views/domain-workflows-archival/domain-workflows-archival-header/__tests__/domain-workflows-archival-header.test.tsx

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,4 @@ describe(DomainWorkflowsArchivalHeader.name, () => {
3232

3333
expect(screen.getByText('Workflows Header')).toBeInTheDocument();
3434
});
35-
36-
it('pre-fills default start and end dates if not present in query params', async () => {
37-
render(
38-
<DomainWorkflowsArchivalHeader
39-
domain="mock_domain"
40-
cluster="mock_cluster"
41-
/>
42-
);
43-
44-
expect(mockSetQueryParams).toHaveBeenCalledWith({
45-
timeRangeStartArchival: '2023-05-15T00:00:00.000Z',
46-
timeRangeEndArchival: '2023-05-25T00:00:00.000Z',
47-
});
48-
});
4935
});

src/views/domain-workflows-archival/domain-workflows-archival-header/domain-workflows-archival-header.tsx

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,6 @@ export default function DomainWorkflowsArchivalHeader({
3636
query: queryParams.queryArchival,
3737
});
3838

39-
useEffect(() => {
40-
if (
41-
!queryParams.timeRangeStartArchival &&
42-
!queryParams.timeRangeEndArchival
43-
) {
44-
const now = dayjs();
45-
setQueryParams({
46-
timeRangeStartArchival: now
47-
.subtract(DOMAIN_WORKFLOWS_ARCHIVAL_START_DAYS_CONFIG, 'days')
48-
.toISOString(),
49-
timeRangeEndArchival: now.toISOString(),
50-
});
51-
}
52-
}, [
53-
queryParams.timeRangeStartArchival,
54-
queryParams.timeRangeEndArchival,
55-
setQueryParams,
56-
]);
57-
5839
return (
5940
<WorkflowsHeader
6041
pageQueryParamsConfig={domainPageQueryParamsConfig}

0 commit comments

Comments
 (0)