1import type { JSX } from "solid-js";2import { render } from "solid-js/web";34export function renderView(view: JSX.Element | (() => JSX.Element)) {5 const container = document.createElement("div");6 document.body.appendChild(container);7 const dispose = render(() => (typeof view === "function" ? view() : view), container);8 return {9 container,10 dispose: () => {11 dispose();12 container.remove();13 },14 };15}1617export async function flushView(): Promise<void> {18 await Promise.resolve();19 await new Promise((resolve) => window.setTimeout(resolve, 0));20 await Promise.resolve();21}2223export function inputText(24 element: HTMLInputElement | HTMLTextAreaElement,25 value: string26): void {27 element.value = value;28 element.dispatchEvent(new Event("input", { bubbles: true }));29}3031export function changeSelect(32 element: HTMLSelectElement,33 value: string34): void {35 element.value = value;36 element.dispatchEvent(new Event("change", { bubbles: true }));37}3839export function pressEnter(element: HTMLElement): void {40 element.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "Enter" }));41}