102 lines
3.8 KiB
JavaScript
102 lines
3.8 KiB
JavaScript
/* @odoo-module */
|
|
|
|
import { UPDATE_BUS_PRESENCE_DELAY } from "@bus/im_status_service";
|
|
import { startServer } from "@bus/../tests/helpers/mock_python_environment";
|
|
|
|
import { Command } from "@mail/../tests/helpers/command";
|
|
import { start } from "@mail/../tests/helpers/test_utils";
|
|
|
|
import { click, contains } from "@web/../tests/utils";
|
|
|
|
QUnit.module("im status");
|
|
|
|
QUnit.test("initially online", async () => {
|
|
const pyEnv = await startServer();
|
|
const partnerId = pyEnv["res.partner"].create({ name: "Demo", im_status: "online" });
|
|
const channelId = pyEnv["discuss.channel"].create({
|
|
channel_member_ids: [
|
|
Command.create({ partner_id: pyEnv.currentPartnerId }),
|
|
Command.create({ partner_id: partnerId }),
|
|
],
|
|
channel_type: "chat",
|
|
});
|
|
const { openDiscuss } = await start();
|
|
openDiscuss(channelId);
|
|
await contains(".o-mail-ImStatus i[title='Online']");
|
|
});
|
|
|
|
QUnit.test("initially offline", async () => {
|
|
const pyEnv = await startServer();
|
|
const partnerId = pyEnv["res.partner"].create({ name: "Demo", im_status: "offline" });
|
|
const channelId = pyEnv["discuss.channel"].create({
|
|
channel_member_ids: [
|
|
Command.create({ partner_id: pyEnv.currentPartnerId }),
|
|
Command.create({ partner_id: partnerId }),
|
|
],
|
|
channel_type: "chat",
|
|
});
|
|
const { openDiscuss } = await start();
|
|
openDiscuss(channelId);
|
|
await contains(".o-mail-ImStatus i[title='Offline']");
|
|
});
|
|
|
|
QUnit.test("initially away", async () => {
|
|
const pyEnv = await startServer();
|
|
const partnerId = pyEnv["res.partner"].create({ name: "Demo", im_status: "away" });
|
|
const channelId = pyEnv["discuss.channel"].create({
|
|
channel_member_ids: [
|
|
Command.create({ partner_id: pyEnv.currentPartnerId }),
|
|
Command.create({ partner_id: partnerId }),
|
|
],
|
|
channel_type: "chat",
|
|
});
|
|
const { openDiscuss } = await start();
|
|
openDiscuss(channelId);
|
|
await contains(".o-mail-ImStatus i[title='Idle']");
|
|
});
|
|
|
|
QUnit.test("change icon on change partner im_status", async () => {
|
|
const pyEnv = await startServer();
|
|
const partnerId = pyEnv["res.partner"].create({ name: "Demo", im_status: "online" });
|
|
const channelId = pyEnv["discuss.channel"].create({
|
|
channel_member_ids: [
|
|
Command.create({ partner_id: pyEnv.currentPartnerId }),
|
|
Command.create({ partner_id: partnerId }),
|
|
],
|
|
channel_type: "chat",
|
|
});
|
|
const { advanceTime, openDiscuss } = await start({ hasTimeControl: true });
|
|
openDiscuss(channelId);
|
|
await contains(".o-mail-ImStatus i[title='Online']");
|
|
|
|
pyEnv["res.partner"].write([partnerId], { im_status: "offline" });
|
|
advanceTime(UPDATE_BUS_PRESENCE_DELAY);
|
|
await contains(".o-mail-ImStatus i[title='Offline']");
|
|
|
|
pyEnv["res.partner"].write([partnerId], { im_status: "away" });
|
|
advanceTime(UPDATE_BUS_PRESENCE_DELAY);
|
|
await contains(".o-mail-ImStatus i[title='Idle']");
|
|
|
|
pyEnv["res.partner"].write([partnerId], { im_status: "online" });
|
|
advanceTime(UPDATE_BUS_PRESENCE_DELAY);
|
|
await contains(".o-mail-ImStatus i[title='Online']");
|
|
});
|
|
|
|
QUnit.test("show im status in messaging menu preview of chat", async () => {
|
|
const pyEnv = await startServer();
|
|
const partnerId = pyEnv["res.partner"].create({ name: "Demo", im_status: "online" });
|
|
pyEnv["discuss.channel"].create({
|
|
channel_member_ids: [
|
|
Command.create({ partner_id: pyEnv.currentPartnerId }),
|
|
Command.create({ partner_id: partnerId }),
|
|
],
|
|
channel_type: "chat",
|
|
});
|
|
await start();
|
|
await click(".o_menu_systray i[aria-label='Messages']");
|
|
await contains(".o-mail-NotificationItem", {
|
|
text: "Demo",
|
|
contains: ["i[aria-label='User is online']"],
|
|
});
|
|
});
|