66 lines
2.6 KiB
JavaScript
66 lines
2.6 KiB
JavaScript
|
/* @odoo-module */
|
||
|
|
||
|
import { startServer } from "@bus/../tests/helpers/mock_python_environment";
|
||
|
|
||
|
import { start } from "@mail/../tests/helpers/test_utils";
|
||
|
|
||
|
import { assertSteps, click, contains, insertText, step } from "@web/../tests/utils";
|
||
|
import { patchWebsocketWorkerWithCleanup } from "@bus/../tests/helpers/mock_websocket";
|
||
|
import { patchDate } from "@web/../tests/helpers/utils";
|
||
|
|
||
|
QUnit.module("discuss");
|
||
|
|
||
|
QUnit.test("Member list and settings menu are exclusive", async () => {
|
||
|
const pyEnv = await startServer();
|
||
|
const channelId = pyEnv["discuss.channel"].create({ name: "General" });
|
||
|
const { openDiscuss } = await start();
|
||
|
openDiscuss(channelId);
|
||
|
await click("[title='Show Member List']");
|
||
|
await contains(".o-discuss-ChannelMemberList");
|
||
|
await click("[title='Show Call Settings']");
|
||
|
await contains(".o-discuss-CallSettings");
|
||
|
await contains(".o-discuss-ChannelMemberList", { count: 0 });
|
||
|
});
|
||
|
|
||
|
QUnit.test("bus subscription is refreshed when channel is joined", async () => {
|
||
|
const pyEnv = await startServer();
|
||
|
pyEnv["discuss.channel"].create([{ name: "General" }, { name: "Sales" }]);
|
||
|
patchWebsocketWorkerWithCleanup({
|
||
|
_sendToServer({ event_name, data }) {
|
||
|
if (event_name === "subscribe") {
|
||
|
step(`subscribe - ${JSON.stringify(data.channels)}`);
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
const later = luxon.DateTime.now().plus({ seconds: 2 });
|
||
|
patchDate(later.year, later.month, later.day, later.hour, later.minute, later.second);
|
||
|
const { openDiscuss } = await start();
|
||
|
await assertSteps(["subscribe - []"]);
|
||
|
await openDiscuss();
|
||
|
await assertSteps([]);
|
||
|
await click(".o-mail-DiscussSidebar i[title='Add or join a channel']");
|
||
|
await insertText(".o-discuss-ChannelSelector input", "new channel");
|
||
|
await click(".o-discuss-ChannelSelector-suggestion");
|
||
|
await assertSteps(["subscribe - []"]);
|
||
|
});
|
||
|
|
||
|
QUnit.test("bus subscription is refreshed when channel is left", async () => {
|
||
|
const pyEnv = await startServer();
|
||
|
pyEnv["discuss.channel"].create({ name: "General" });
|
||
|
patchWebsocketWorkerWithCleanup({
|
||
|
_sendToServer({ event_name, data }) {
|
||
|
if (event_name === "subscribe") {
|
||
|
step(`subscribe - ${JSON.stringify(data.channels)}`);
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
const later = luxon.DateTime.now().plus({ seconds: 2 });
|
||
|
patchDate(later.year, later.month, later.day, later.hour, later.minute, later.second);
|
||
|
const { openDiscuss } = await start();
|
||
|
await assertSteps(["subscribe - []"]);
|
||
|
await openDiscuss();
|
||
|
await assertSteps([]);
|
||
|
await click("[title='Leave this channel']");
|
||
|
await assertSteps(["subscribe - []"]);
|
||
|
});
|