Odoo18-Base/addons/mail/static/tests/discuss/call/web/call.test.js
2025-01-06 10:57:38 +07:00

81 lines
3.1 KiB
JavaScript

import {
click,
contains,
defineMailModels,
insertText,
mockGetMedia,
openDiscuss,
patchUiSize,
SIZES,
start,
startServer,
triggerHotkey,
} from "@mail/../tests/mail_test_helpers";
import { describe, test } from "@odoo/hoot";
import { mockUserAgent } from "@odoo/hoot-mock";
import { mockService } from "@web/../tests/web_test_helpers";
describe.current.tags("desktop");
defineMailModels();
test("no default rtc after joining a chat conversation", async () => {
const pyEnv = await startServer();
const partnerId = pyEnv["res.partner"].create({ name: "Mario" });
pyEnv["res.users"].create({ partner_id: partnerId });
await start();
await openDiscuss();
await click(".o-mail-DiscussSidebar [title='Start a conversation']");
await contains(".o-mail-DiscussSidebarChannel", { count: 0 });
await insertText(".o-discuss-ChannelSelector input", "mario");
await click(".o-discuss-ChannelSelector-suggestion");
await contains(".o-discuss-ChannelSelector-suggestion", { count: 0 });
triggerHotkey("Enter");
await contains(".o-mail-DiscussSidebarChannel");
await contains(".o-mail-Discuss-content .o-mail-Message", { count: 0 });
await contains(".o-discuss-Call", { count: 0 });
});
test("no default rtc after joining a group conversation", async () => {
const pyEnv = await startServer();
const [partnerId_1, partnerId_2] = pyEnv["res.partner"].create([
{ name: "Mario" },
{ name: "Luigi" },
]);
pyEnv["res.users"].create([{ partner_id: partnerId_1 }, { partner_id: partnerId_2 }]);
await start();
await openDiscuss();
await click(".o-mail-DiscussSidebar [title='Start a conversation']");
await contains(".o-mail-DiscussSidebarChannel", { count: 0 });
await insertText(".o-discuss-ChannelSelector input", "mario");
await click(".o-discuss-ChannelSelector-suggestion", { text: "Mario" });
await insertText(".o-discuss-ChannelSelector input", "luigi", { replace: true });
await click(".o-discuss-ChannelSelector-suggestion", { text: "Luigi" });
triggerHotkey("Enter");
await contains(".o-mail-DiscussSidebarChannel");
await contains(".o-mail-Discuss-content .o-mail-Message", { count: 0 });
await contains(".o-discuss-Call", { count: 0 });
});
test.tags("mobile");
test("show Push-to-Talk button on mobile", async () => {
mockGetMedia();
mockUserAgent("android");
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "General" });
mockService("discuss.ptt_extension", {
get isEnabled() {
return false;
},
});
patchUiSize({ size: SIZES.SM });
await start();
await openDiscuss(channelId);
await click("[title='Start a Call']");
await click("[title='Open Actions Menu']");
await click(".o-dropdown-item", { text: "Call Settings" });
await click("button", { text: "Push to Talk" });
await click("[title='Open Actions Menu']");
await click(".o-dropdown-item", { text: "Call Settings" });
await contains("button", { text: "Push to talk" });
});