[#162] changed preview modal looks to follow figma (#163)

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
This commit is contained in:
Camille Moussu
2025-10-07 11:20:09 +02:00
committed by GitHub
parent 40c383c334
commit 3f8f3eff23
14 changed files with 731 additions and 619 deletions
+7 -8
View File
@@ -3,7 +3,7 @@ import EventDuplication from "../../src/components/Event/EventDuplicate";
import EventDisplayModal from "../../src/features/Events/EventDisplay";
import EventPopover from "../../src/features/Events/EventModal";
import { renderWithProviders } from "../utils/Renderwithproviders";
import EventPreviewModal from "../../src/features/Events/EventDisplayPreview";
import EventPreviewModal from "../../src/components/Event/EventDisplayPreview";
const day = new Date();
const preloadedState = {
@@ -75,10 +75,9 @@ describe("EventDuplication", () => {
preloadedState
);
const button = screen.getByRole("button");
fireEvent.click(button);
fireEvent.click(screen.getByText("Duplicate event"));
expect(screen.getByText(/Duplicate Event/i)).toBeInTheDocument();
expect(screen.getAllByText(/Duplicate Event/i)[1]).toBeInTheDocument();
});
it("calls onClose when closing the popover", () => {
@@ -94,7 +93,7 @@ describe("EventDuplication", () => {
preloadedState
);
fireEvent.click(screen.getByRole("button"));
fireEvent.click(screen.getByText("Duplicate event"));
fireEvent.click(screen.getByRole("button", { name: /Cancel/i }));
@@ -159,13 +158,13 @@ describe("EventDisplayModal", () => {
calId="667037022b752d0026472254/cal1"
open={true}
onClose={jest.fn()}
anchorPosition={{ top: 0, left: 0 }}
/>,
preloadedState
);
fireEvent.click(screen.getByTestId("AddToPhotosIcon"));
expect(screen.getByText(/Duplicate Event/i)).toBeInTheDocument();
fireEvent.click(screen.getByTestId("MoreVertIcon"));
fireEvent.click(screen.getByText("Duplicate event"));
expect(screen.getAllByText(/Duplicate Event/i)[1]).toBeInTheDocument();
expect(
screen.getByDisplayValue(
preloadedState.calendars.list["667037022b752d0026472254/cal1"].events
+30 -34
View File
@@ -1,12 +1,19 @@
import { screen, fireEvent, waitFor, act } from "@testing-library/react";
import {
screen,
fireEvent,
waitFor,
act,
cleanup,
} from "@testing-library/react";
import * as eventThunks from "../../../src/features/Calendars/CalendarSlice";
import { renderWithProviders } from "../../utils/Renderwithproviders";
import EventDisplayModal, {
InfoRow,
stringAvatar,
import EventDisplayModal from "../../../src/features/Events/EventDisplay";
import EventPreviewModal from "../../../src/components/Event/EventDisplayPreview";
import { InfoRow } from "../../../src/components/Event/InfoRow";
import {
stringToColor,
} from "../../../src/features/Events/EventDisplay";
import EventPreviewModal from "../../../src/features/Events/EventDisplayPreview";
stringAvatar,
} from "../../../src/components/Event/utils/eventUtils";
describe("Event Preview Display", () => {
const mockOnClose = jest.fn();
@@ -104,7 +111,6 @@ describe("Event Preview Display", () => {
});
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -118,9 +124,8 @@ describe("Event Preview Display", () => {
expect(screen.getByText("Test Event")).toBeInTheDocument();
expect(screen.getByText(new RegExp(weekday, "i"))).toBeInTheDocument();
expect(screen.getByText(new RegExp(month, "i"))).toBeInTheDocument();
expect(
screen.getByText(new RegExp(`\\b${dayOfMonth}\\b`))
screen.getByText(new RegExp(`\\b${dayOfMonth}\\b ${month}`))
).toBeInTheDocument();
expect(screen.getByText(/\d{2}:\d{2} \d{2}:\d{2}/)).toBeInTheDocument();
@@ -129,7 +134,6 @@ describe("Event Preview Display", () => {
it("calls onClose when Cancel clicked", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -145,7 +149,6 @@ describe("Event Preview Display", () => {
// Renders the other cal event
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"otherCal/cal"}
@@ -153,11 +156,12 @@ describe("Event Preview Display", () => {
/>,
preloadedState
);
expect(screen.queryByTestId("DeleteIcon")).not.toBeInTheDocument();
fireEvent.click(screen.getByTestId("MoreVertIcon"));
expect(screen.queryByText("Delete event")).not.toBeInTheDocument();
cleanup();
// Renders the personnal cal event
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -165,12 +169,12 @@ describe("Event Preview Display", () => {
/>,
preloadedState
);
expect(screen.queryByTestId("DeleteIcon")).toBeInTheDocument();
fireEvent.click(screen.getByTestId("MoreVertIcon"));
expect(screen.queryByText("Delete event")).toBeInTheDocument();
});
it("calls delete when Delete clicked", async () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -183,8 +187,8 @@ describe("Event Preview Display", () => {
.mockImplementation((payload) => {
return () => Promise.resolve(payload) as any;
});
fireEvent.click(screen.getByTestId("DeleteIcon"));
fireEvent.click(screen.getByTestId("MoreVertIcon"));
fireEvent.click(screen.getByText("Delete event"));
await waitFor(() => {
expect(spy).toHaveBeenCalled();
@@ -237,7 +241,6 @@ describe("Event Preview Display", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -246,7 +249,7 @@ describe("Event Preview Display", () => {
rsvpStateIsOrga
);
expect(screen.getByText("Will you attend?")).toBeInTheDocument();
expect(screen.getByText("Attending?")).toBeInTheDocument();
expect(screen.getByRole("button", { name: "Accept" })).toBeInTheDocument();
expect(screen.getByRole("button", { name: "Maybe" })).toBeInTheDocument();
expect(screen.getByRole("button", { name: "Decline" })).toBeInTheDocument();
@@ -284,7 +287,6 @@ describe("Event Preview Display", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -293,7 +295,7 @@ describe("Event Preview Display", () => {
rsvpStateIsOrga
);
expect(screen.queryByText("Will you attend?")).not.toBeInTheDocument();
expect(screen.queryByText("Attending?")).not.toBeInTheDocument();
expect(
screen.queryByRole("button", { name: "Accept" })
).not.toBeInTheDocument();
@@ -344,7 +346,6 @@ describe("Event Preview Display", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -403,7 +404,6 @@ describe("Event Preview Display", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -462,7 +462,6 @@ describe("Event Preview Display", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -496,7 +495,6 @@ describe("Event Preview Display", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -516,7 +514,6 @@ describe("Event Preview Display", () => {
(window as any).MAIL_SPA_URL = "test";
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -524,13 +521,13 @@ describe("Event Preview Display", () => {
/>,
preloadedState
);
expect(screen.getByTestId("EmailIcon")).toBeInTheDocument();
fireEvent.click(screen.getByTestId("MoreVertIcon"));
expect(screen.getByText("Email attendees")).toBeInTheDocument();
});
it("doesnt render message button when MAIL_SPA_URL is not null and event has no attendees", () => {
(window as any).MAIL_SPA_URL = "test";
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -543,7 +540,6 @@ describe("Event Preview Display", () => {
it("doesnt render message button when MAIL_SPA_URL is null and event has attendees", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -560,7 +556,6 @@ describe("Event Preview Display", () => {
renderWithProviders(
<EventPreviewModal
anchorPosition={{ top: 0, left: 0 }}
open={true}
onClose={mockOnClose}
calId={"667037022b752d0026472254/cal1"}
@@ -569,10 +564,11 @@ describe("Event Preview Display", () => {
preloadedState
);
const emailButton = screen.getByTestId("EmailIcon");
fireEvent.click(screen.getByTestId("MoreVertIcon"));
const emailButton = screen.getByText("Email attendees");
expect(emailButton).toBeInTheDocument();
fireEvent.click(emailButton.closest("button")!);
fireEvent.click(emailButton);
const event =
preloadedState.calendars.list["667037022b752d0026472254/cal1"].events[
@@ -1403,7 +1399,7 @@ describe("Event Full Display", () => {
videoState
);
expect(screen.getByText("Video conference available")).toBeInTheDocument();
expect(screen.getByText("Join the video conference")).toBeInTheDocument();
});
});
@@ -1416,7 +1412,7 @@ describe("Helper functions", () => {
it("stringAvatar returns correct props", () => {
const result = stringAvatar("Alice");
expect(result.children).toBe("A");
expect(result.sx.bgcolor).toMatch(/^#/);
expect(result.style.backgroundColor).toMatch(/^#/);
});
it("InfoRow renders text and link if url is valid", () => {