mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-23 20:42:02 +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,76 @@
|
|||
import { Command, patchWithCleanup, serverState } from "@web/../tests/web_test_helpers";
|
||||
import { defineLivechatModels } from "@im_livechat/../tests/livechat_test_helpers";
|
||||
import {
|
||||
contains,
|
||||
setupChatHub,
|
||||
start,
|
||||
startServer,
|
||||
click,
|
||||
} from "@mail/../tests/mail_test_helpers";
|
||||
import { describe, test } from "@odoo/hoot";
|
||||
import { mockDate } from "@odoo/hoot-mock";
|
||||
import { Store } from "@mail/core/common/store_service";
|
||||
import { Thread } from "@mail/core/common/thread";
|
||||
|
||||
describe.current.tags("desktop");
|
||||
defineLivechatModels();
|
||||
|
||||
test("Visitor going offline shows disconnection banner to operator", async () => {
|
||||
patchWithCleanup(Store, { IM_STATUS_DEBOUNCE_DELAY: 0 });
|
||||
patchWithCleanup(Thread.prototype, {
|
||||
setup() {
|
||||
super.setup();
|
||||
this.IM_STATUS_DELAY = 0;
|
||||
},
|
||||
});
|
||||
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", im_status: "online" });
|
||||
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");
|
||||
mockDate("2025-01-01 12:00:00", +1);
|
||||
pyEnv["mail.guest"].write(guestId, { im_status: "offline" });
|
||||
pyEnv["bus.bus"]._sendone(guestId, "bus.bus/im_status_updated", {
|
||||
partner_id: false,
|
||||
guest_id: guestId,
|
||||
im_status: "offline",
|
||||
});
|
||||
await contains(".o-livechat-VisitorDisconnected", {
|
||||
text: "Visitor is disconnected since 1:00 PM",
|
||||
});
|
||||
mockDate("2025-01-02 12:00:00", +1);
|
||||
await click("button[title*='Fold']");
|
||||
await click(".o-mail-ChatBubble");
|
||||
await contains(".o-livechat-VisitorDisconnected", {
|
||||
text: "Visitor is disconnected since yesterday at 1:00 PM",
|
||||
});
|
||||
mockDate("2025-01-05 12:00:00", +1);
|
||||
await click("button[title*='Fold']");
|
||||
await click(".o-mail-ChatBubble");
|
||||
await contains(".o-livechat-VisitorDisconnected", { text: `Visitor is disconnected` });
|
||||
pyEnv["bus.bus"]._sendone(guestId, "bus.bus/im_status_updated", {
|
||||
partner_id: false,
|
||||
guest_id: guestId,
|
||||
im_status: "online",
|
||||
});
|
||||
await contains(".o-livechat-VisitorDisconnected", { count: 0 });
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue