oca-ocb-hr/odoo-bringout-oca-ocb-hr_gamification/hr_gamification/static/tests/messaging_menu_patch.test.js
Ernad Husremovic e1d89e11e3 19.0 vanilla
2026-03-09 09:31:00 +01:00

58 lines
1.9 KiB
JavaScript

import { click, start } from "@mail/../tests/mail_test_helpers";
import { expect, test } from "@odoo/hoot";
import { defineHrGamificationModels } from "@hr_gamification/../tests/hr_gamification_test_helpers";
import { asyncStep, makeMockServer, mockService, serverState, waitForSteps } from "@web/../tests/web_test_helpers";
import { user } from "@web/core/user";
defineHrGamificationModels();
test("badge notification opens employee form", async () => {
const { env } = await makeMockServer();
const badgeUserId = env["gamification.badge.user"].create({
badge_name: "Best Employee",
user_id: serverState.userId,
user_partner_id: serverState.partnerId,
});
const employeeId = env["hr.employee.public"].create(
{
name: "Demo",
user_id: serverState.userId,
company_id: user.activeCompany.id,
})
const messageId = env["mail.message"].create(
{
message_type: 'user_notification',
model: "gamification.badge.user",
res_id: badgeUserId,
body: "You've received a badge!",
needaction: true,
});
env["mail.notification"].create(
{
mail_message_id: messageId,
res_partner_id: serverState.partnerId,
notification_status: "sent",
notification_type: "inbox",
},
);
mockService("action", {
doAction(action) {
asyncStep("do_action");
expect(action.type).toBe("ir.actions.act_window");
expect(action.res_model).toBe("hr.employee.public");
expect(action.views).toEqual([[false, "form"]]);
expect(action.res_id).toBe(employeeId);
},})
await start();
await click(".o_menu_systray i[aria-label='Messages']");
await click(".o-mail-NotificationItem", {
text: "You've received a badge!",
});
await waitForSteps(["do_action"]);
});