mail/static/tests/discuss/call/call_settings_menu_tests.js

117 lines
4.3 KiB
JavaScript
Raw Normal View History

2024-05-03 12:40:35 +03:00
/* @odoo-module */
import { startServer } from "@bus/../tests/helpers/mock_python_environment";
import { start } from "@mail/../tests/helpers/test_utils";
import { browser } from "@web/core/browser/browser";
import { patchWithCleanup } from "@web/../tests/helpers/utils";
import { click, contains } from "@web/../tests/utils";
QUnit.module("call setting");
QUnit.test("Renders the call settings", async () => {
patchWithCleanup(browser, {
navigator: {
...browser.navigator,
mediaDevices: {
enumerateDevices: () =>
Promise.resolve([
{
deviceId: "mockAudioDeviceId",
kind: "audioinput",
label: "mockAudioDeviceLabel",
},
{
deviceId: "mockVideoDeviceId",
kind: "videoinput",
label: "mockVideoDeviceLabel",
},
]),
},
},
});
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "test" });
const { openDiscuss } = await start();
openDiscuss(channelId);
await click(".o-mail-Discuss-header .fa-gear");
await contains(".o-discuss-CallSettings");
await contains("label[aria-label='Input device']");
await contains("option[value=mockAudioDeviceId]");
await contains("option[value=mockVideoDeviceId]", { count: 0 });
await contains("input[title='toggle push-to-talk']");
await contains("label[aria-label='Voice detection threshold']");
await contains("input[title='Show video participants only']");
await contains("input[title='Blur video background']");
});
QUnit.test("activate push to talk", async () => {
patchWithCleanup(browser, {
navigator: {
...browser.navigator,
mediaDevices: {
enumerateDevices: () => Promise.resolve([]),
},
},
});
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "test" });
const { openDiscuss } = await start();
openDiscuss(channelId);
await click(".o-mail-Discuss-header .fa-gear");
await click("input[title='toggle push-to-talk']");
await contains("i[aria-label='Register new key']");
await contains("label[aria-label='Delay after releasing push-to-talk']");
await contains("label[aria-label='Voice detection threshold']", { count: 0 });
});
QUnit.test("activate blur", async () => {
patchWithCleanup(browser, {
navigator: {
...browser.navigator,
mediaDevices: {
enumerateDevices: () => Promise.resolve([]),
},
},
});
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "test" });
const { openDiscuss } = await start();
openDiscuss(channelId);
await click(".o-mail-Discuss-header .fa-gear");
await click("input[title='Blur video background']");
await contains("label[aria-label='Background blur intensity']");
await contains("label[aria-label='Edge blur intensity']");
});
QUnit.test("Inbox should not have any call settings menu", async () => {
await startServer();
const { openDiscuss } = await start();
openDiscuss("mail.box_inbox");
await contains(".o-mail-Thread");
await contains("button[title='Show Call Settings']", { count: 0 });
});
QUnit.test(
"Call settings menu should not be visible on selecting a mailbox (from being open)",
async () => {
patchWithCleanup(browser, {
navigator: {
...browser.navigator,
mediaDevices: {
enumerateDevices: () => Promise.resolve([]),
},
},
});
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "General" });
const { openDiscuss } = await start();
openDiscuss(channelId);
await click("button[title='Show Call Settings']");
await click("button", { text: "Inbox" });
await contains("button[title='Hide Call Settings']", { count: 0 });
await contains(".o-discuss-CallSettings", { count: 0 });
}
);