import { test, assert } from "./test-utils.js";
import "./components.js";
test("editable-area renders", async (container) => {
container.innerHTML = `Test 123`;
const textarea = container.querySelector("textarea");
const display = container.querySelector("p");
await assert(() => textarea.value === "Test 123");
await assert(() => display.classList.contains("display"));
await assert(() => display.innerHTML === "Test 123
");
});
test("editable-area updates on input", async (container) => {
container.innerHTML = ``;
const textarea = container.querySelector("textarea");
const display = container.querySelector("p");
let eventCalled = false;
container.addEventListener("contentChange", () => {
eventCalled = true;
});
textarea.value = "Some new content\nwith a newline";
textarea.dispatchEvent(
new Event("input", { bubbles: true, cancelable: true }),
);
await assert(() => display.innerHTML === `Some new content
with a newline
`);
await assert(() => eventCalled === true);
});
test("editable-area respects readonly attribute", async (container) => {
container.innerHTML = `Some text`;
const textarea = container.querySelector("textarea");
await assert(() => textarea.disabled);
});