import { expect, test, describe } from "@odoo/hoot"; import { animationFrame } from "@odoo/hoot-mock"; import { mountView, onRpc, contains, toggleKanbanColumnActions } from "@web/../tests/web_test_helpers"; import { defineProjectModels } from "./project_models"; defineProjectModels(); describe.current.tags("desktop"); const listViewParams = { resModel: "project.project", type: "list", actionMenus: {}, arch: ` `, } test("project.project (list) show archive/unarchive action for project manager", async () => { onRpc("has_group", ({ args }) => args[1] === "project.group_project_manager"); await mountView(listViewParams); await contains("input.form-check-input").click(); await contains(`.o_cp_action_menus .dropdown-toggle`).click(); expect(`.oi-archive`).toHaveCount(1, { message: "Archive action should be visible" }); expect(`.oi-unarchive`).toHaveCount(1, { message: "Unarchive action should be visible" }); }); test("project.project (list) hide archive/unarchive action for project user", async () => { onRpc("has_group", ({ args }) => args[1] === "project.group_project_user"); await mountView(listViewParams); await contains("input.form-check-input").click(); await contains(`.o_cp_action_menus .dropdown-toggle`).click(); expect(`.o-dropdown--menu span:contains(Archive)`).toHaveCount(0, { message: "Archive action should not be visible" }); expect(`.o-dropdown--menu span:contains(Unarchive)`).toHaveCount(0, { message: "Unarchive action should not be visible" }); }); test("project.project (kanban) hide archive/unarchive action for project user", async () => { onRpc("has_group", ({ args }) => args[1] === "project.group_project_user"); await mountView({ resModel: "project.project", type: "kanban", actionMenus: {}, arch: `
`, groupBy: ['stage_id'] }); toggleKanbanColumnActions(); await animationFrame(); await expect('.o_column_archive_records').toHaveCount(0, { message: "Archive action should not be visible" }); await expect('.o_column_unarchive_records').toHaveCount(0, { message: "Unarchive action should not be visible" }); });