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

60 lines
2.0 KiB
JavaScript

import { expect, test } from "@odoo/hoot";
import { animationFrame } from "@odoo/hoot-mock";
import { click, manuallyDispatchProgrammaticEvent, press } from "@odoo/hoot-dom";
import { DYNAMIC_PLACEHOLDER_PLUGINS, MAIN_PLUGINS } from "@html_editor/plugin_sets";
import { defineModels, models, onRpc, serverState } from "@web/../tests/web_test_helpers";
import { setupEditor } from "./_helpers/editor";
import { insertText } from "./_helpers/user_actions";
class ResUsers extends models.Model {
_name = "res.users";
_records = [
{
id: serverState.userId,
},
];
}
onRpc("has_group", () => true);
onRpc("mail_allowed_qweb_expressions", () => []);
defineModels([ResUsers]);
test("inserted value from dynamic placeholder should contain the data-oe-t-inline attribute", async () => {
const { editor } = await setupEditor("<p>test[]</p>", {
config: {
Plugins: [...MAIN_PLUGINS, ...DYNAMIC_PLACEHOLDER_PLUGINS],
dynamicPlaceholderResModel: "res.users",
},
});
await insertText(editor, "/dynamicplaceholder");
await press("Enter");
await animationFrame();
const popover_search_input = document.querySelector(
".o_model_field_selector_popover_search .o_input"
);
popover_search_input.value = "displayname";
await manuallyDispatchProgrammaticEvent(popover_search_input, "input", {
inputType: "insertText",
});
await press("Enter");
await animationFrame();
const default_value_input = document.querySelector(
".o_model_field_selector_default_value_input .o_input"
);
await click(default_value_input);
await manuallyDispatchProgrammaticEvent(default_value_input, "input", {
inputType: "insertText",
});
default_value_input.value = "Test";
await manuallyDispatchProgrammaticEvent(default_value_input, "input", {
inputType: "insertText",
});
await press("Enter");
await animationFrame();
expect("t[data-oe-t-inline]").toHaveCount(1);
});