mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-22 01:22:01 +02:00
87 lines
3.3 KiB
JavaScript
87 lines
3.3 KiB
JavaScript
import {
|
|
defineLivechatModels,
|
|
loadDefaultEmbedConfig,
|
|
} from "@im_livechat/../tests/livechat_test_helpers";
|
|
import {
|
|
click,
|
|
contains,
|
|
insertText,
|
|
start,
|
|
startServer,
|
|
triggerHotkey,
|
|
} from "@mail/../tests/mail_test_helpers";
|
|
import { mailDataHelpers } from "@mail/../tests/mock_server/mail_mock_server";
|
|
import { describe, test } from "@odoo/hoot";
|
|
import { asyncStep, patchWithCleanup, waitForSteps } from "@web/../tests/web_test_helpers";
|
|
|
|
describe.current.tags("desktop");
|
|
defineLivechatModels();
|
|
|
|
test("open/close temporary channel", async () => {
|
|
await startServer();
|
|
await loadDefaultEmbedConfig();
|
|
await start({ authenticateAs: false });
|
|
await click(".o-livechat-LivechatButton");
|
|
await contains(".o-mail-ChatWindow");
|
|
await contains(".o-livechat-LivechatButton", { count: 0 });
|
|
await click("[title*='Close Chat Window']");
|
|
await contains(".o-mail-ChatWindow", { count: 0 });
|
|
await contains(".o-livechat-LivechatButton", { count: 1 });
|
|
});
|
|
|
|
test("open/close persisted channel", async () => {
|
|
await startServer();
|
|
await loadDefaultEmbedConfig();
|
|
const env = await start({ authenticateAs: false });
|
|
env.services.bus_service.subscribe("discuss.channel/new_message", () =>
|
|
asyncStep("discuss.channel/new_message")
|
|
);
|
|
await click(".o-livechat-LivechatButton");
|
|
await insertText(".o-mail-Composer-input", "How can I help?");
|
|
await triggerHotkey("Enter");
|
|
await contains(".o-mail-Thread:not([data-transient])");
|
|
await contains(".o-mail-Message-content", { text: "How can I help?" });
|
|
await waitForSteps(["discuss.channel/new_message"]);
|
|
await click("[title*='Close Chat Window']");
|
|
await click(".o-livechat-CloseConfirmation-leave");
|
|
await contains(".o-mail-ChatWindow", { text: "Did we correctly answer your question?" });
|
|
await click("[title*='Close Chat Window']");
|
|
await contains(".o-mail-ChatWindow", { count: 0 });
|
|
await contains(".o-livechat-LivechatButton", { count: 1 });
|
|
});
|
|
|
|
test("livechat not available", async () => {
|
|
await startServer();
|
|
await loadDefaultEmbedConfig();
|
|
patchWithCleanup(mailDataHelpers, {
|
|
_process_request_for_all(store) {
|
|
super._process_request_for_all(...arguments);
|
|
store.add({ livechat_available: false });
|
|
},
|
|
});
|
|
await start({ authenticateAs: false });
|
|
await contains(".o-mail-ChatHub");
|
|
await contains(".o-livechat-LivechatButton", { count: 0 });
|
|
});
|
|
|
|
test("clicking on notification opens the chat", async () => {
|
|
const pyEnv = await startServer();
|
|
await loadDefaultEmbedConfig();
|
|
const btnAndTextRuleId = pyEnv["im_livechat.channel.rule"].create({
|
|
action: "display_button_and_text",
|
|
});
|
|
patchWithCleanup(mailDataHelpers, {
|
|
_process_request_for_all(store) {
|
|
super._process_request_for_all(...arguments);
|
|
store.add(pyEnv["im_livechat.channel.rule"].browse(btnAndTextRuleId), {
|
|
action: "display_button_and_text",
|
|
});
|
|
store.add({ livechat_rule: btnAndTextRuleId });
|
|
},
|
|
});
|
|
await start({ authenticateAs: false });
|
|
await click(".o-livechat-LivechatButton-notification", {
|
|
text: "Need help? Chat with us.",
|
|
});
|
|
await contains(".o-mail-ChatWindow");
|
|
});
|