66 lines
2.6 KiB
JavaScript
66 lines
2.6 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 { LivechatButton } from "@im_livechat/embed/common/livechat_button";
|
|
|
|
import { mockTimeout, nextTick, triggerHotkey } from "@web/../tests/helpers/utils";
|
|
import { click, contains, insertText } from "@web/../tests/utils";
|
|
|
|
QUnit.module("livechat session");
|
|
|
|
QUnit.test("Session is reset after failing to persist the channel", async (assert) => {
|
|
await startServer();
|
|
await loadDefaultConfig();
|
|
const { advanceTime } = mockTimeout();
|
|
start({
|
|
mockRPC(route, args) {
|
|
if (route === "/im_livechat/get_session" && args.persisted) {
|
|
return false;
|
|
}
|
|
},
|
|
});
|
|
await click(".o-livechat-LivechatButton");
|
|
await insertText(".o-mail-Composer-input", "Hello World!");
|
|
triggerHotkey("Enter");
|
|
await contains(".o_notification", {
|
|
text: "No available collaborator, please try again later.",
|
|
});
|
|
await contains(".o-livechat-LivechatButton");
|
|
await advanceTime(LivechatButton.DEBOUNCE_DELAY + 10);
|
|
await click(".o-livechat-LivechatButton");
|
|
await contains(".o-mail-ChatWindow");
|
|
});
|
|
|
|
QUnit.test("Thread state is saved on the session", async (assert) => {
|
|
await startServer();
|
|
await loadDefaultConfig();
|
|
const env = await start();
|
|
await click(".o-livechat-LivechatButton");
|
|
await contains(".o-mail-Thread");
|
|
assert.strictEqual(env.services["im_livechat.livechat"].sessionCookie.state, "open");
|
|
await click(".o-mail-ChatWindow-header");
|
|
await contains(".o-mail-Thread", { count: 0 });
|
|
assert.strictEqual(env.services["im_livechat.livechat"].sessionCookie.state, "folded");
|
|
await click(".o-mail-ChatWindow-header");
|
|
await contains(".o-mail-Thread");
|
|
assert.strictEqual(env.services["im_livechat.livechat"].sessionCookie.state, "open");
|
|
});
|
|
|
|
QUnit.test("Seen message is saved on the session", async (assert) => {
|
|
await startServer();
|
|
await loadDefaultConfig();
|
|
const env = await start();
|
|
await click(".o-livechat-LivechatButton");
|
|
assert.notOk(env.services["im_livechat.livechat"].sessionCookie.seen_message_id);
|
|
await insertText(".o-mail-Composer-input", "Hello World!");
|
|
triggerHotkey("Enter");
|
|
await contains(".o-mail-Message", { count: 2 });
|
|
await nextTick(); // wait for message seen
|
|
assert.strictEqual(
|
|
env.services["im_livechat.livechat"].sessionCookie.seen_message_id,
|
|
env.services["im_livechat.livechat"].thread.newestMessage.id
|
|
);
|
|
});
|