mail/static/tests/discuss/core/composer_tests.js
Данил Воробьев 6e6f15d803 initial commit
2024-05-03 09:40:35 +00:00

74 lines
2.7 KiB
JavaScript

/* @odoo-module */
import { startServer } from "@bus/../tests/helpers/mock_python_environment";
import { Composer } from "@mail/core/common/composer";
import { start } from "@mail/../tests/helpers/test_utils";
import { patchWithCleanup } from "@web/../tests/helpers/utils";
import { click, contains, insertText } from "@web/../tests/utils";
QUnit.module("composer", {
async beforeEach() {
// Simulate real user interactions
patchWithCleanup(Composer.prototype, {
isEventTrusted() {
return true;
},
});
},
});
QUnit.test('do not send typing notification on typing "/" command', async (assert) => {
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "channel" });
const { openDiscuss } = await start({
async mockRPC(route, args) {
if (route === "/discuss/channel/notify_typing") {
assert.step(`notify_typing:${args.is_typing}`);
}
},
});
openDiscuss(channelId);
await insertText(".o-mail-Composer-input", "/");
assert.verifySteps([], "No rpc done");
});
QUnit.test(
'do not send typing notification on typing after selecting suggestion from "/" command',
async (assert) => {
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "channel" });
const { openDiscuss } = await start({
async mockRPC(route, args) {
if (route === "/discuss/channel/notify_typing") {
assert.step(`notify_typing:${args.is_typing}`);
}
},
});
openDiscuss(channelId);
await insertText(".o-mail-Composer-input", "/");
await click(":nth-child(1 of .o-mail-Composer-suggestion)");
await contains(".o-mail-Composer-suggestion strong", { count: 0 });
await insertText(".o-mail-Composer-input", " is user?");
assert.verifySteps([], "No rpc done");
}
);
QUnit.test("add an emoji after a command", async () => {
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({
name: "General",
channel_type: "channel",
});
const { openDiscuss } = await start();
openDiscuss(channelId);
await contains(".o-mail-Composer-input", { value: "" });
await insertText(".o-mail-Composer-input", "/");
await click(":nth-child(1 of .o-mail-Composer-suggestion)");
await contains(".o-mail-Composer-input", { value: "/who " });
await click("button[aria-label='Emojis']");
await click(".o-Emoji", { text: "😊" });
await contains(".o-mail-Composer-input", { value: "/who 😊" });
});