oca-ocb-mail/odoo-bringout-oca-ocb-im_livechat/im_livechat/static/tests/suggestions.test.js
Ernad Husremovic daa394e8b0 19.0 vanilla
2026-03-09 09:31:39 +01:00

91 lines
3.4 KiB
JavaScript

import { describe, test } from "@odoo/hoot";
import {
click,
contains,
insertText,
openDiscuss,
start,
startServer,
} from "@mail/../tests/mail_test_helpers";
import { Command, serverState } from "@web/../tests/web_test_helpers";
import { defineLivechatModels } from "./livechat_test_helpers";
describe.current.tags("desktop");
defineLivechatModels();
test("Suggestions are shown after delimiter was used in text (::)", async () => {
const pyEnv = await startServer();
pyEnv["mail.canned.response"].create({
source: "hello",
substitution: "Hello dear customer, how may I help you?",
});
const channelId = pyEnv["discuss.channel"].create({
channel_type: "livechat",
channel_member_ids: [
Command.create({ partner_id: serverState.partnerId, livechat_member_type: "agent" }),
Command.create({
partner_id: serverState.publicPartnerId,
livechat_member_type: "visitor",
}),
],
});
await start();
await openDiscuss(channelId);
await insertText(".o-mail-Composer-input", "::");
await contains(".o-mail-Composer-suggestion strong", { text: "hello" });
await insertText(".o-mail-Composer-input", ")");
await contains(".o-mail-Composer-suggestion strong", { count: 0 });
await insertText(".o-mail-Composer-input", " ::");
await contains(".o-mail-Composer-suggestion strong", { text: "hello" });
});
test("Cannot mention other channels in a livechat", async () => {
const pyEnv = await startServer();
const [channelId] = pyEnv["discuss.channel"].create([
{
channel_type: "livechat",
channel_member_ids: [
Command.create({
partner_id: serverState.partnerId,
livechat_member_type: "agent",
}),
Command.create({
partner_id: serverState.publicPartnerId,
livechat_member_type: "visitor",
}),
],
},
{
channel_type: "channel",
group_public_id: false,
name: "Link and Zelda",
},
]);
await start();
await openDiscuss(channelId);
await insertText(".o-mail-Composer-input", "#");
await contains(".o-mail-Composer-suggestion", { count: 0 });
});
test("Internal user mention shows their live chat username", async () => {
const pyEnv = await startServer();
pyEnv["res.partner"].write([serverState.partnerId], { user_livechat_username: "Batman" });
const channelId = pyEnv["discuss.channel"].create({
channel_type: "livechat",
channel_member_ids: [
Command.create({ partner_id: serverState.partnerId, livechat_member_type: "agent" }),
Command.create({
partner_id: serverState.publicPartnerId,
livechat_member_type: "visitor",
}),
],
});
pyEnv["res.users"]._applyComputesAndValidate();
await start();
await openDiscuss(channelId);
await insertText(".o-mail-Composer-input", "@");
await click('.o-mail-Composer-suggestion:contains(Mitchell Admin "Batman")');
await contains(".o-mail-Composer-input:value(@Batman)");
await click(".o-mail-Composer button[title='Send']:enabled");
await contains(".o-mail-Message a.o_mail_redirect", { text: "@Batman" });
});