import { DOMEvent, DOMThis } from "./dom.js"; /** * Create a div that fills with the virtual-dom and * then inject it into the document, fixture is * persistent between tests so each execution * within the test recycles the host, * allowing to evaluate the update cycles correctly * * @example * ```js * import { html } from "atomico"; * import { fixture } from "atomico/test-dom"; * import { expect } from "@esm-bundle/chai"; * * describe("test DOM", ()=>{ * it("example",()=>{ * const img = fixture(html``); * expect(img.src).to.equal("./image"); * }) * }) * ``` */ export function fixture(vnode: any): DOMThis; /** * Allows to listen to an event asynchronously, * the promise will be returned once the event is dispatched * @example * ```js * import { asyncEventListener } from "atomico/test-dom"; * import { expect } from "@esm-bundle/chai"; * * describe("asyncEventListener", ()=>{ * it("example",async ()=>{ * let eventExpect; * setTimeout(() => { * window.dispatchEvent((eventExpect = new Event("click"))); * }); * * const event = await asyncEventListener(window, "click"); * * expect(eventExpect).to.equal(event); * }) * }) * ``` */ export function asyncEventListener( base: Base, type: string ): Promise>; export type DispatchEvent = ( currentTarget: Node, event: Event, target?: any ) => boolean; export const dispatchEvent: DispatchEvent;