Files
enterprise-addons/ai_app/static/tests/command_palette.test.js
T

59 lines
2.1 KiB
JavaScript

import { test } from "@odoo/hoot";
import { makeMockServer, onRpc, getService } from "@web/../tests/web_test_helpers";
import {
triggerHotkey,
start,
insertText,
contains,
click,
} from "@mail/../tests/mail_test_helpers";
import { defineAIModels } from "@ai/../tests/ai_test_helpers";
defineAIModels();
test("[text composer] can open chat with @agent in command palette with focused composer", async () => {
const mockServer = await makeMockServer();
const partnerId = mockServer.env["res.partner"].create({
name: "Test agent",
active: false,
});
mockServer.env["ai.agent"].create({
name: "Test agent",
partner_id: partnerId,
});
onRpc("ai.agent", "get_ask_ai_agent", () => ({ id: 1, name: "ASK AI" }));
await start();
triggerHotkey("control+k");
await insertText(".o_command_palette_search input", "@");
await contains(".o_command_category>.text-uppercase", { text: "Agents" });
await insertText("input[placeholder='Search a conversation']", "Test agent");
await click(".o_command.focused:has(.fa-gear)", { text: "Test agent" });
await contains(".o-mail-ChatWindow", { text: "Test agent" });
await contains(".o-mail-Composer.o-focused");
});
test.tags("html composer");
test("can open chat with @agent in command palette with focused composer", async () => {
const mockServer = await makeMockServer();
const partnerId = mockServer.env["res.partner"].create({
name: "AI Agent",
});
mockServer.env["ai.agent"].create({
name: "Test Agent",
partner_id: partnerId,
});
onRpc("get_ask_ai_agent", () => ({ id: 1, name: "ASK AI" }));
await start();
const composerService = getService("mail.composer");
composerService.setHtmlComposer();
triggerHotkey("control+k");
await insertText(".o_command_palette_search input", "@");
await insertText("input[placeholder='Search a conversation']", "AI Agent");
await click(".o_command.focused:has(.fa-gear)", { text: "AI Agent" });
await contains(".o-mail-ChatWindow", { text: "AI Agent" });
await contains(".o-mail-Composer.o-focused");
});