mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-24 19:42:00 +02:00
19.0 vanilla
This commit is contained in:
parent
5df8c07b59
commit
daa394e8b0
2114 changed files with 564841 additions and 299642 deletions
|
|
@ -0,0 +1,151 @@
|
|||
import { Command, serverState } from "@web/../tests/web_test_helpers";
|
||||
import { defineLivechatModels } from "@im_livechat/../tests/livechat_test_helpers";
|
||||
import {
|
||||
click,
|
||||
contains,
|
||||
openDiscuss,
|
||||
setupChatHub,
|
||||
start,
|
||||
startServer,
|
||||
triggerHotkey,
|
||||
} from "@mail/../tests/mail_test_helpers";
|
||||
import { describe, test } from "@odoo/hoot";
|
||||
import { withGuest } from "@mail/../tests/mock_server/mail_mock_server";
|
||||
import { rpc } from "@web/core/network/rpc";
|
||||
import { serializeDate, today } from "@web/core/l10n/dates";
|
||||
import { livechatLastAgentLeaveFromChatWindow } from "./im_livechat_shared_tests";
|
||||
|
||||
describe.current.tags("desktop");
|
||||
defineLivechatModels();
|
||||
|
||||
test("from the discuss app", async () => {
|
||||
const pyEnv = await startServer();
|
||||
pyEnv["res.users"].write([serverState.userId], {
|
||||
group_ids: pyEnv["res.groups"]
|
||||
.search_read([["id", "=", serverState.groupLivechatId]])
|
||||
.map(({ id }) => id),
|
||||
});
|
||||
const [guestId_1, guestId_2] = pyEnv["mail.guest"].create([
|
||||
{ name: "guest_1" },
|
||||
{ name: "guest_2" },
|
||||
]);
|
||||
const livechatChannelId = pyEnv["im_livechat.channel"].create({
|
||||
name: "HR",
|
||||
user_ids: [serverState.userId],
|
||||
});
|
||||
pyEnv["discuss.channel"].create([
|
||||
{
|
||||
channel_type: "livechat",
|
||||
channel_member_ids: [
|
||||
Command.create({
|
||||
partner_id: serverState.partnerId,
|
||||
livechat_member_type: "agent",
|
||||
}),
|
||||
Command.create({ guest_id: guestId_1, livechat_member_type: "visitor" }),
|
||||
],
|
||||
livechat_end_dt: false,
|
||||
livechat_channel_id: livechatChannelId,
|
||||
livechat_operator_id: serverState.partnerId,
|
||||
create_uid: serverState.publicUserId,
|
||||
},
|
||||
{
|
||||
channel_type: "livechat",
|
||||
channel_member_ids: [
|
||||
Command.create({
|
||||
partner_id: serverState.partnerId,
|
||||
livechat_member_type: "agent",
|
||||
}),
|
||||
Command.create({ guest_id: guestId_2, livechat_member_type: "visitor" }),
|
||||
],
|
||||
livechat_end_dt: serializeDate(today()),
|
||||
livechat_channel_id: livechatChannelId,
|
||||
livechat_operator_id: serverState.partnerId,
|
||||
create_uid: serverState.publicUserId,
|
||||
},
|
||||
]);
|
||||
await start();
|
||||
await openDiscuss();
|
||||
await contains(
|
||||
".o-mail-DiscussSidebarCategory-livechat:has(:text('HR')) .fa-circle[title='You have joined this live chat channel']"
|
||||
);
|
||||
await click("[title='Leave HR']", {
|
||||
parent: [".o-mail-DiscussSidebarCategory-livechat", { text: "HR" }],
|
||||
});
|
||||
await contains(
|
||||
".o-mail-DiscussSidebarCategory-livechat:has(:text('HR')) .fa-circle[title='You have joined this live chat channel']",
|
||||
{ count: 0 }
|
||||
);
|
||||
await click("[title='Join HR']", {
|
||||
parent: [".o-mail-DiscussSidebarCategory-livechat", { text: "HR" }],
|
||||
});
|
||||
await contains(
|
||||
".o-mail-DiscussSidebarCategory-livechat:has(:text('HR')) .fa-circle[title='You have joined this live chat channel']"
|
||||
);
|
||||
await click("[title='Chat Actions']", {
|
||||
parent: [".o-mail-DiscussSidebarChannel", { text: "guest_1" }],
|
||||
});
|
||||
await click(".o-dropdown-item:contains('Leave Channel')");
|
||||
await click("button:contains(Leave Conversation)");
|
||||
await contains(".o-mail-DiscussSidebarChannel", { text: "guest_1", count: 0 });
|
||||
await click("[title='Chat Actions']", {
|
||||
parent: [".o-mail-DiscussSidebarChannel", { text: "guest_2" }],
|
||||
});
|
||||
await click(".o-dropdown-item:contains('Leave Channel')");
|
||||
await contains(".o-mail-DiscussSidebarChannel", { text: "guest_2", count: 0 });
|
||||
await click("[title='Leave HR']", {
|
||||
parent: [".o-mail-DiscussSidebarCategory-livechat", { text: "HR" }],
|
||||
});
|
||||
await contains(".o-mail-DiscussSidebarCategory-livechat", { text: "HR", count: 0 });
|
||||
});
|
||||
|
||||
test("from the command palette", async () => {
|
||||
const pyEnv = await startServer();
|
||||
pyEnv["res.users"].write([serverState.userId], {
|
||||
group_ids: pyEnv["res.groups"]
|
||||
.search_read([["id", "=", serverState.groupLivechatId]])
|
||||
.map(({ id }) => id),
|
||||
});
|
||||
pyEnv["im_livechat.channel"].create({ name: "HR", user_ids: [serverState.userId] });
|
||||
await start();
|
||||
await triggerHotkey("control+k");
|
||||
await click(".o_command", { text: "Leave HR" });
|
||||
await contains(".o_notification", { text: "You left HR." });
|
||||
await contains(".o_command", { text: "HR", count: 0 });
|
||||
await triggerHotkey("control+k");
|
||||
await click(".o_command", { text: "Join HR" });
|
||||
await contains(".o_notification", { text: "You joined HR." });
|
||||
});
|
||||
|
||||
test("from chat window", livechatLastAgentLeaveFromChatWindow);
|
||||
|
||||
test("visitor leaving ends the livechat conversation", async () => {
|
||||
const pyEnv = await startServer();
|
||||
pyEnv["res.users"].write([serverState.userId], {
|
||||
group_ids: pyEnv["res.groups"]
|
||||
.search_read([["id", "=", serverState.groupLivechatId]])
|
||||
.map(({ id }) => id),
|
||||
});
|
||||
const guestId = pyEnv["mail.guest"].create({ name: "Visitor" });
|
||||
const livechatChannelId = pyEnv["im_livechat.channel"].create({
|
||||
name: "HR",
|
||||
user_ids: [serverState.userId],
|
||||
});
|
||||
const channel_id = pyEnv["discuss.channel"].create({
|
||||
channel_type: "livechat",
|
||||
channel_member_ids: [
|
||||
Command.create({ partner_id: serverState.partnerId, livechat_member_type: "agent" }),
|
||||
Command.create({ guest_id: guestId, livechat_member_type: "visitor" }),
|
||||
],
|
||||
livechat_channel_id: livechatChannelId,
|
||||
livechat_operator_id: serverState.partnerId,
|
||||
create_uid: serverState.publicUserId,
|
||||
});
|
||||
setupChatHub({ opened: [channel_id] });
|
||||
await start();
|
||||
await contains(".o-mail-ChatWindow");
|
||||
// simulate visitor leaving
|
||||
await withGuest(guestId, () => rpc("/im_livechat/visitor_leave_session", { channel_id }));
|
||||
await contains("span", { text: "This livechat conversation has ended" });
|
||||
await click("button[title*='Close Chat Window']");
|
||||
await contains(".o-mail-ChatWindow", { count: 0 });
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue