Odoo18-Base/addons/calendar/static/tests/calendar_notification.test.js
2025-01-06 10:57:38 +07:00

84 lines
2.7 KiB
JavaScript

import { defineCalendarModels } from "@calendar/../tests/calendar_test_helpers";
import {
assertSteps,
click,
contains,
start,
startServer,
step,
} from "@mail/../tests/mail_test_helpers";
import { test } from "@odoo/hoot";
import {
onRpc,
patchWithCleanup,
preloadBundle,
serverState,
} from "@web/../tests/web_test_helpers";
defineCalendarModels();
preloadBundle("web.fullcalendar_lib");
test("can listen on bus and display notifications in DOM and click OK", async () => {
const pyEnv = await startServer();
onRpc("/calendar/notify_ack", () => step("notifyAck"));
await start();
pyEnv["bus.bus"]._sendone(serverState.partnerId, "calendar.alarm", [
{
alarm_id: 1,
event_id: 2,
title: "Meeting",
message: "Very old meeting message",
timer: 0,
notify_at: "1978-04-14 12:45:00",
},
]);
await contains(".o_notification", { text: "Very old meeting message" });
await click(".o_notification_buttons button", { text: "OK" });
await contains(".o_notification", { count: 0 });
assertSteps(["notifyAck"]);
});
test("can listen on bus and display notifications in DOM and click Detail", async () => {
const pyEnv = await startServer();
const env = await start();
patchWithCleanup(env.services.action, {
doAction(actionId) {
step(actionId.type);
},
});
pyEnv["bus.bus"]._sendone(serverState.partnerId, "calendar.alarm", [
{
alarm_id: 1,
event_id: 2,
title: "Meeting",
message: "Very old meeting message",
timer: 0,
notify_at: "1978-04-14 12:45:00",
},
]);
await contains(".o_notification", { text: "Very old meeting message" });
await click(".o_notification_buttons button", { text: "Details" });
await contains(".o_notification", { count: 0 });
assertSteps(["ir.actions.act_window"]);
});
test("can listen on bus and display notifications in DOM and click Snooze", async () => {
const pyEnv = await startServer();
onRpc("/calendar/notify_ack", () => step("notifyAck"));
await start();
pyEnv["bus.bus"]._sendone(serverState.partnerId, "calendar.alarm", [
{
alarm_id: 1,
event_id: 2,
title: "Meeting",
message: "Very old meeting message",
timer: 0,
notify_at: "1978-04-14 12:45:00",
},
]);
await contains(".o_notification", { text: "Very old meeting message" });
await click(".o_notification button", { text: "Snooze" });
await contains(".o_notification", { count: 0 });
assertSteps([]);
});