71 lines
2.9 KiB
JavaScript
71 lines
2.9 KiB
JavaScript
/* @odoo-module */
|
|
|
|
import { startServer } from "@bus/../tests/helpers/mock_python_environment";
|
|
|
|
import { loadDefaultConfig, start } from "@im_livechat/../tests/embed/helper/test_utils";
|
|
|
|
import { Command } from "@mail/../tests/helpers/command";
|
|
|
|
import { contains, focus } from "@web/../tests/utils";
|
|
import { cookie } from "@web/core/browser/cookie";
|
|
|
|
QUnit.module("thread service");
|
|
|
|
QUnit.test("new message from operator displays unread counter", async () => {
|
|
const pyEnv = await startServer();
|
|
const livechatChannelId = await loadDefaultConfig();
|
|
const guestId = pyEnv["mail.guest"].create({ name: "Visitor 11" });
|
|
pyEnv.cookie.set("dgid", guestId);
|
|
const channelId = pyEnv["discuss.channel"].create({
|
|
channel_member_ids: [
|
|
Command.create({ partner_id: pyEnv.adminPartnerId }),
|
|
Command.create({ guest_id: guestId }),
|
|
],
|
|
channel_type: "livechat",
|
|
livechat_channel_id: livechatChannelId,
|
|
livechat_operator_id: pyEnv.adminPartnerId,
|
|
});
|
|
const [channelInfo] = pyEnv.mockServer._mockDiscussChannelChannelInfo([channelId]);
|
|
cookie.set("im_livechat_session", JSON.stringify(channelInfo));
|
|
const env = await start();
|
|
$(".o-mail-Composer-input").blur();
|
|
pyEnv.withUser(pyEnv.adminUserId, () =>
|
|
env.services.rpc("/mail/message/post", {
|
|
post_data: { body: "Are you there?", message_type: "comment" },
|
|
thread_id: channelId,
|
|
thread_model: "discuss.channel",
|
|
})
|
|
);
|
|
await contains(".o-mail-ChatWindow-counter", { text: "1" });
|
|
});
|
|
|
|
QUnit.test("focus on unread livechat marks it as read", async () => {
|
|
const pyEnv = await startServer();
|
|
const livechatChannelId = await loadDefaultConfig();
|
|
const guestId = pyEnv["mail.guest"].create({ name: "Visitor 11" });
|
|
pyEnv.cookie.set("dgid", guestId);
|
|
const channelId = pyEnv["discuss.channel"].create({
|
|
channel_member_ids: [
|
|
Command.create({ partner_id: pyEnv.adminPartnerId }),
|
|
Command.create({ guest_id: guestId }),
|
|
],
|
|
channel_type: "livechat",
|
|
livechat_channel_id: livechatChannelId,
|
|
livechat_operator_id: pyEnv.adminPartnerId,
|
|
});
|
|
const [channelInfo] = pyEnv.mockServer._mockDiscussChannelChannelInfo([channelId]);
|
|
cookie.set("im_livechat_session", JSON.stringify(channelInfo));
|
|
const env = await start();
|
|
$(".o-mail-Composer-input").blur();
|
|
pyEnv.withUser(pyEnv.adminUserId, () =>
|
|
env.services.rpc("/mail/message/post", {
|
|
post_data: { body: "Are you there?", message_type: "comment" },
|
|
thread_id: channelId,
|
|
thread_model: "discuss.channel",
|
|
})
|
|
);
|
|
await contains(".o-mail-Thread-newMessage ~ .o-mail-Message", { text: "Are you there?" });
|
|
await focus(".o-mail-Composer-input");
|
|
await contains(".o-mail-Thread-newMessage", { count: 0 });
|
|
});
|