[#77] fixed when getEventAsync is dispatched to prevent missing data

This commit is contained in:
Camille Moussu
2025-09-05 13:07:51 +02:00
parent 8efeea8102
commit 0549a77d92
3 changed files with 32 additions and 22 deletions
+31 -16
View File
@@ -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(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
eventId={"event1"}
/>,
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(
<EventDisplayModal
open={true}
@@ -942,10 +961,6 @@ describe("Event Full Display", () => {
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();
-6
View File
@@ -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);
};
@@ -136,6 +136,7 @@ export default function EventPreviewModal({
size="small"
onClick={async () => {
setOpenFullDisplay(!openFullDisplay);
await dispatch(getEventAsync(event));
}}
>
<EditIcon fontSize="small" />