From e4b0cf1c11f6b2fdf4d3824a84454b5b5902632d Mon Sep 17 00:00:00 2001 From: Christopher Kolstad Date: Tue, 15 Mar 2022 11:22:10 +0100 Subject: [PATCH] fix: make sure we handle hours as 00-23 --- .../DateSingleValue/DateSingleValue.tsx | 6 +++--- .../date-single-value-test.tsx.snap | 8 ++++++++ .../__tests__/date-single-value-test.tsx | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/__snapshots__/date-single-value-test.tsx.snap create mode 100644 frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/date-single-value-test.tsx diff --git a/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx index 506e018e6f..ec23d744bd 100644 --- a/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx +++ b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx @@ -8,9 +8,9 @@ interface IDateSingleValueProps { setError: React.Dispatch>; } -const parseValue = (value: string) => { +export const parseDateValue = (value: string) => { const date = new Date(value); - return format(date, 'yyyy-MM-dd') + 'T' + format(date, 'kk:mm'); + return format(date, 'yyyy-MM-dd') + 'T' + format(date, 'HH:mm'); }; export const DateSingleValue = ({ @@ -28,7 +28,7 @@ export const DateSingleValue = ({ id="date" label="Date" type="datetime-local" - value={parseValue(value)} + value={parseDateValue(value)} onChange={e => { setError(''); setValue(new Date(e.target.value).toISOString()); diff --git a/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/__snapshots__/date-single-value-test.tsx.snap b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/__snapshots__/date-single-value-test.tsx.snap new file mode 100644 index 0000000000..7ca35b5640 --- /dev/null +++ b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/__snapshots__/date-single-value-test.tsx.snap @@ -0,0 +1,8 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Date component - snapshot matching 1`] = ` +Object { + "midday": "2022-03-15T12:00", + "midnight": "2022-03-15T00:00", +} +`; diff --git a/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/date-single-value-test.tsx b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/date-single-value-test.tsx new file mode 100644 index 0000000000..245a65d915 --- /dev/null +++ b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/__tests__/date-single-value-test.tsx @@ -0,0 +1,18 @@ +import { parseDateValue } from '../DateSingleValue'; + +test(`Date component is able to parse midnight when it's 00`, () => { + let f = parseDateValue('2022-03-15T12:27'); + let midnight = parseDateValue('2022-03-15T00:27'); + expect(f).toEqual('2022-03-15T12:27'); + expect(midnight).toEqual('2022-03-15T00:27'); +}); + +test(`Date component - snapshot matching`, () => { + let midnight = '2022-03-15T00:00'; + let midday = '2022-03-15T12:00'; + let obj = { + midnight: parseDateValue(midnight), + midday: parseDateValue(midday), + }; + expect(obj).toMatchSnapshot(); +});