43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
import { expect, test } from "@odoo/hoot";
|
|
import { press } from "@odoo/hoot-dom";
|
|
import { animationFrame, tick } from "@odoo/hoot-mock";
|
|
import { defineModels, fields, models, serverState } from "@web/../tests/web_test_helpers";
|
|
import { setupEditor } from "./_helpers/editor";
|
|
import { getContent } from "./_helpers/selection";
|
|
import { insertText, undo } from "./_helpers/user_actions";
|
|
class ResUsers extends models.Model {
|
|
_name = "res.users";
|
|
|
|
signature = fields.Html();
|
|
_records = [
|
|
{
|
|
id: serverState.userId,
|
|
signature: "<h1>Hello</h1>",
|
|
},
|
|
];
|
|
}
|
|
defineModels([ResUsers]);
|
|
|
|
test("apply 'Signature' command", async () => {
|
|
const { el, editor } = await setupEditor("<p>ab[]cd</p>");
|
|
await insertText(editor, "/signature");
|
|
await animationFrame();
|
|
expect(".active .o-we-command-name").toHaveText("Signature");
|
|
|
|
await press("enter");
|
|
await tick();
|
|
expect(getContent(el)).toBe("<p>ab</p><h1>Hello[]</h1><p>cd</p>");
|
|
});
|
|
|
|
test("undo a 'Signature' command", async () => {
|
|
const { el, editor } = await setupEditor("<p>ab[]cd</p>");
|
|
await insertText(editor, "test");
|
|
await insertText(editor, "/signature");
|
|
await press("enter");
|
|
await tick();
|
|
expect(getContent(el)).toBe("<p>abtest</p><h1>Hello[]</h1><p>cd</p>");
|
|
|
|
undo(editor);
|
|
expect(getContent(el)).toBe("<p>abtest[]cd</p>");
|
|
});
|