Co-authored-by: Camille Moussu <cmoussu@linagora.com>
This commit is contained in:
@@ -90,6 +90,12 @@ describe("Event Preview Display", () => {
|
||||
end: day.toISOString(),
|
||||
organizer: { cn: "test", cal_address: "test@test.com" },
|
||||
},
|
||||
event4: {
|
||||
uid: "event4",
|
||||
calId: "667037022b752d0026472254/cal1",
|
||||
start: day.toISOString(),
|
||||
end: day.toISOString(),
|
||||
},
|
||||
},
|
||||
ownerEmails: ["test@test.com"],
|
||||
},
|
||||
@@ -106,6 +112,12 @@ describe("Event Preview Display", () => {
|
||||
end: day.toISOString(),
|
||||
organizer: { cn: "john", cal_address: "john@test.com" },
|
||||
},
|
||||
event2: {
|
||||
uid: "event2",
|
||||
calId: "otherCal/cal",
|
||||
start: day.toISOString(),
|
||||
end: day.toISOString(),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -532,6 +544,39 @@ describe("Event Preview Display", () => {
|
||||
const updatedEvent = spy.mock.calls[0][0].newEvent;
|
||||
expect(updatedEvent.attendee[0].partstat).toBe("DECLINED");
|
||||
});
|
||||
it("handles Edit click when is own but with no organizer", async () => {
|
||||
renderWithProviders(
|
||||
<EventPreviewModal
|
||||
open={true}
|
||||
onClose={mockOnClose}
|
||||
calId={"667037022b752d0026472254/cal1"}
|
||||
eventId={"event4"}
|
||||
/>,
|
||||
preloadedState
|
||||
);
|
||||
|
||||
fireEvent.click(screen.getByTestId("EditIcon"));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByText("event.updateEvent")).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
it("doesnt show edit button when is not own and with no organizer", async () => {
|
||||
renderWithProviders(
|
||||
<EventPreviewModal
|
||||
open={true}
|
||||
onClose={mockOnClose}
|
||||
calId={"otherCal/cal"}
|
||||
eventId={"event2"}
|
||||
/>,
|
||||
preloadedState
|
||||
);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.queryByTestId("EditIcon")).not.toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
it("handles Edit click", async () => {
|
||||
renderWithProviders(
|
||||
<EventPreviewModal
|
||||
|
||||
@@ -81,6 +81,9 @@ export default function EventPreviewModal({
|
||||
|
||||
const isRecurring = event?.uid?.includes("/");
|
||||
const isOwn = calendar.ownerEmails?.includes(user.userData.email);
|
||||
const isOrganizer = event.organizer
|
||||
? user.userData.email === event.organizer.cal_address
|
||||
: isOwn;
|
||||
const [showAllAttendees, setShowAllAttendees] = useState(false);
|
||||
const [openUpdateModal, setOpenUpdateModal] = useState(false);
|
||||
const [openDuplicateModal, setOpenDuplicateModal] = useState(false);
|
||||
@@ -324,26 +327,25 @@ export default function EventPreviewModal({
|
||||
<FileDownloadOutlinedIcon />
|
||||
</IconButton>
|
||||
)}
|
||||
{user.userData.email === event.organizer?.cal_address &&
|
||||
calendar.ownerEmails?.includes(user.userData.email) && (
|
||||
<IconButton
|
||||
size="small"
|
||||
onClick={() => {
|
||||
if (isRecurring) {
|
||||
setAfterChoiceFunc(() => () => {
|
||||
setHidePreview(true);
|
||||
setOpenUpdateModal(true);
|
||||
});
|
||||
setOpenEditModePopup("edit");
|
||||
} else {
|
||||
{isOrganizer && isOwn && (
|
||||
<IconButton
|
||||
size="small"
|
||||
onClick={() => {
|
||||
if (isRecurring) {
|
||||
setAfterChoiceFunc(() => () => {
|
||||
setHidePreview(true);
|
||||
setOpenUpdateModal(true);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<EditIcon />
|
||||
</IconButton>
|
||||
)}
|
||||
});
|
||||
setOpenEditModePopup("edit");
|
||||
} else {
|
||||
setHidePreview(true);
|
||||
setOpenUpdateModal(true);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<EditIcon />
|
||||
</IconButton>
|
||||
)}
|
||||
{((event.class !== "PRIVATE" && !isOwn) || isOwn) && (
|
||||
<IconButton
|
||||
size="small"
|
||||
@@ -380,7 +382,7 @@ export default function EventPreviewModal({
|
||||
setOpenDuplicateModal(true);
|
||||
}}
|
||||
/>
|
||||
{user.userData.email === event.organizer?.cal_address && (
|
||||
{isOrganizer && (
|
||||
<MenuItem
|
||||
onClick={async () => {
|
||||
if (isRecurring) {
|
||||
|
||||
Reference in New Issue
Block a user