Odoo18-Base/addons/im_livechat/static/tests/embed/transcript_sender.test.js
2025-01-06 10:57:38 +07:00

63 lines
2.4 KiB
JavaScript

import { LivechatButton } from "@im_livechat/embed/common/livechat_button";
import {
defineLivechatModels,
loadDefaultEmbedConfig,
} from "@im_livechat/../tests/livechat_test_helpers";
import { describe, test } from "@odoo/hoot";
import {
assertSteps,
click,
contains,
insertText,
onRpcBefore,
start,
startServer,
step,
triggerHotkey,
} from "@mail/../tests/mail_test_helpers";
import { mountWithCleanup, onRpc } from "@web/../tests/web_test_helpers";
describe.current.tags("desktop");
defineLivechatModels();
test("send", async () => {
await startServer();
await loadDefaultEmbedConfig();
onRpcBefore("/im_livechat/email_livechat_transcript", (args) =>
step(`send_transcript - ${args.email}`)
);
await start({ authenticateAs: false });
await mountWithCleanup(LivechatButton);
await click(".o-livechat-LivechatButton");
await insertText(".o-mail-Composer-input", "Hello World!");
triggerHotkey("Enter");
await contains(".o-mail-Message-content", { text: "Hello World!" });
await click(".o-mail-ChatWindow-command[title*='Close']");
await click(".o-livechat-CloseConfirmation-leave");
await contains(".form-text", { text: "Receive a copy of this conversation." });
await contains("button[data-action='sendTranscript']:disabled");
await insertText("input[placeholder='mail@example.com']", "odoobot@odoo.com");
await click("button[data-action='sendTranscript']:enabled");
await contains(".form-text", { text: "The conversation was sent." });
await assertSteps(["send_transcript - odoobot@odoo.com"]);
});
test("send failed", async () => {
await startServer();
await loadDefaultEmbedConfig();
onRpc("/im_livechat/email_livechat_transcript", () => {
throw new Error();
});
await start({ authenticateAs: false });
await mountWithCleanup(LivechatButton);
await click(".o-livechat-LivechatButton");
await insertText(".o-mail-Composer-input", "Hello World!");
triggerHotkey("Enter");
await contains(".o-mail-Message-content", { text: "Hello World!" });
await click(".o-mail-ChatWindow-command[title*='Close']");
await click(".o-livechat-CloseConfirmation-leave");
await insertText("input[placeholder='mail@example.com']", "odoobot@odoo.com");
await click("button[data-action='sendTranscript']:enabled");
await contains(".form-text", { text: "An error occurred. Please try again." });
});