From 8cf6e095d9ff42abe388309699b8aeacd4171fbc Mon Sep 17 00:00:00 2001 From: Marek Mihok Date: Tue, 1 Aug 2023 11:28:56 +0200 Subject: [PATCH] fix: update date_picker state from wave app when initial and new value are the same --- ui/src/date_picker.test.tsx | 14 +++++++++++++- ui/src/date_picker.tsx | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ui/src/date_picker.test.tsx b/ui/src/date_picker.test.tsx index 91996bde8d..b76303b026 100644 --- a/ui/src/date_picker.test.tsx +++ b/ui/src/date_picker.test.tsx @@ -46,13 +46,25 @@ describe('Datepicker.tsx', () => { expect(wave.args[name]).toBeTruthy() }) - it('Set args when value is updated', () => { + it('Set args when value is updated to different value', () => { const { rerender } = render() expect(wave.args[name]).toBe('1999-12-30') rerender() expect(wave.args[name]).toBe('1999-12-31') }) + it('Set args when value is updated to intial value', () => { + const { getAllByRole, getAllByText, rerender } = render() + expect(wave.args[name]).toBe('1999-12-30') + + fireEvent.click(getAllByRole('combobox')[0]) + fireEvent.click(getAllByText('1')[0]) + expect(wave.args[name]).not.toBe('1999-12-30') + + rerender() + expect(wave.args[name]).toBe('1999-12-30') + }) + it('Calls sync when trigger specified', () => { const pushMock = jest.fn() const { getAllByRole, getAllByText } = render() diff --git a/ui/src/date_picker.tsx b/ui/src/date_picker.tsx index fba1460a43..54356b5361 100644 --- a/ui/src/date_picker.tsx +++ b/ui/src/date_picker.tsx @@ -70,6 +70,7 @@ export const const val = (d === null || d === undefined) ? defaultVal : formatDate(d) wave.args[m.name] = val setValue(val ? new Date(`${val}T00:00:00`) : undefined) + m.value = val || undefined if (m.trigger) wave.push() }