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

50 lines
2.1 KiB
JavaScript

import { click, contains, start, startServer } from "@mail/../tests/mail_test_helpers";
import { mountView } from "@web/../tests/web_test_helpers";
import { describe, expect, test } from "@odoo/hoot";
import { queryAttribute } from "@odoo/hoot-dom";
import { defineHrSkillModels } from "@hr_skills/../tests/hr_skills_test_helpers";
describe.current.tags("desktop");
defineHrSkillModels();
test("many2one_avatar_employee widget in kanban view with skills on avatar card", async () => {
const pyEnv = await startServer();
const [java, tigrinya] = pyEnv["hr.skill"].create([{ name: "Java" }, { name: "Tigrinya" }]);
const pierrePid = pyEnv["res.partner"].create({ name: "Pierre" });
const pierreUid = pyEnv["res.users"].create({ name: "Pierre", partner_id: pierrePid });
const pierreEid = pyEnv["hr.employee"].create({
name: "Pierre",
user_id: pierreUid,
user_partner_id: pierrePid,
});
const [javaForPierre, tigrinyaForPierre] = pyEnv["hr.employee.skill"].create([
{ employee_id: pierreEid, skill_id: java },
{ employee_id: pierreEid, skill_id: tigrinya },
]);
pyEnv["hr.employee.public"].create({
name: "Pierre",
employee_skill_ids: [javaForPierre, tigrinyaForPierre],
});
pyEnv["m2o.avatar.employee"].create([{ employee_id: pierreEid }]);
await start();
await mountView({
type: "kanban",
resModel: "m2o.avatar.employee",
arch: `<kanban>
<templates>
<t t-name="card">
<field name="employee_id" widget="many2one_avatar_employee"/>
</t>
</templates>
</kanban>`,
});
await contains(".o_m2o_avatar", { count: 1 });
await contains(".o_field_many2one_avatar_employee img", { count: 1 });
expect(
queryAttribute(".o_kanban_record .o_field_many2one_avatar_employee img", "data-src")
).toBe(`/web/image/hr.employee/${pierreEid}/avatar_128`);
await click(".o_kanban_record .o_m2o_avatar");
await contains(".o_avatar_card");
await contains(".o_avatar_card .o_employee_skills_tags > .o_tag", { count: 2 });
});