From 0549a77d9229c955b32f1f8519a1ee8b5d5091ce Mon Sep 17 00:00:00 2001 From: Camille Moussu Date: Fri, 5 Sep 2025 13:07:51 +0200 Subject: [PATCH] [#77] fixed when getEventAsync is dispatched to prevent missing data --- .../features/Events/EventDisplay.test.tsx | 47 ++++++++++++------- src/features/Events/EventDisplay.tsx | 6 --- src/features/Events/EventDisplayPreview.tsx | 1 + 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/__test__/features/Events/EventDisplay.test.tsx b/__test__/features/Events/EventDisplay.test.tsx index d69b891..d878e95 100644 --- a/__test__/features/Events/EventDisplay.test.tsx +++ b/__test__/features/Events/EventDisplay.test.tsx @@ -474,6 +474,37 @@ describe("Event Preview Display", () => { const updatedEvent = spy.mock.calls[0][0].newEvent; expect(updatedEvent.attendee[0].partstat).toBe("DECLINED"); }); + it("handles Edit click", async () => { + const spy = jest + .spyOn(eventThunks, "getEventAsync") + .mockImplementation((payload) => { + return () => + Promise.resolve({ + calId: payload.calId, + event: + preloadedState.calendars.list["667037022b752d0026472254/cal1"] + .events["event1"], + }) as any; + }); + + renderWithProviders( + , + preloadedState + ); + + fireEvent.click(screen.getByTestId("EditIcon")); + + await waitFor(() => { + expect(spy).toHaveBeenCalled(); + }); + expect(screen.getByText("Edit Event")).toBeInTheDocument(); + }); }); describe("Event Full Display", () => { @@ -917,18 +948,6 @@ describe("Event Full Display", () => { expect(updatedEvent.attendee[0].partstat).toBe("DECLINED"); }); it("toggle Show More reveals extra fields", async () => { - const spy = jest - .spyOn(eventThunks, "getEventAsync") - .mockImplementation((payload) => { - return () => - Promise.resolve({ - calId: payload.calId, - event: - preloadedState.calendars.list["667037022b752d0026472254/cal1"] - .events["event1"], - }) as any; - }); - renderWithProviders( { fireEvent.click(screen.getByText("Show More")); }); - await waitFor(() => { - expect(spy).toHaveBeenCalled(); - }); - console.log(spy); await waitFor(() => { expect(screen.getByLabelText(/Alarm/i)).toBeInTheDocument(); expect(screen.getByLabelText(/Repetition/i)).toBeInTheDocument(); diff --git a/src/features/Events/EventDisplay.tsx b/src/features/Events/EventDisplay.tsx index 40343f3..b310542 100644 --- a/src/features/Events/EventDisplay.tsx +++ b/src/features/Events/EventDisplay.tsx @@ -182,13 +182,7 @@ export default function EventDisplayModal({ onClose({}, "backdropClick"); }; - const [detailsLoaded, setDetailsLoaded] = useState(false); - const handleToggleShowMore = async () => { - if (!detailsLoaded) { - await dispatch(getEventAsync(event)); - setDetailsLoaded(true); - } setShowMore(!showMore); }; diff --git a/src/features/Events/EventDisplayPreview.tsx b/src/features/Events/EventDisplayPreview.tsx index 3f9a220..a70fb77 100644 --- a/src/features/Events/EventDisplayPreview.tsx +++ b/src/features/Events/EventDisplayPreview.tsx @@ -136,6 +136,7 @@ export default function EventPreviewModal({ size="small" onClick={async () => { setOpenFullDisplay(!openFullDisplay); + await dispatch(getEventAsync(event)); }} >