Files
llm-wiki/workbench/web/test/render.tsx
T
2026-07-12 21:26:08 +08:00

39 lines
984 B
TypeScript

import React from "react";
import {
fireEvent,
render as renderWithTestingLibrary,
screen,
waitFor,
within,
type RenderOptions,
} from "@testing-library/react";
export { screen, waitFor, within };
export function render(ui: React.ReactElement, options?: RenderOptions) {
return renderWithTestingLibrary(ui, options);
}
export async function click(element: Element) {
fireEvent.pointerDown(element);
fireEvent.mouseDown(element);
fireEvent.pointerUp(element);
fireEvent.mouseUp(element);
fireEvent.click(element);
await flushMicrotasks();
}
export async function pressKey(element: Element | Document, key: string, init: KeyboardEventInit = {}) {
fireEvent.keyDown(element, { key, code: init.code ?? key, ...init });
await flushMicrotasks();
}
export async function changeText(element: HTMLElement, value: string) {
fireEvent.change(element, { target: { value } });
await flushMicrotasks();
}
export async function flushMicrotasks() {
await Promise.resolve();
}