import React from "react";
import { flushSync } from "react-dom";
import { createRoot } from "react-dom/client";
import { expect, it } from "vitest";
import { dispatchTopOverlayKeyDown } from "@/keyboard";
import { useComposerFullscreenExit } from "./fullscreen-exit";
it("the native entry claims Escape until fullscreen closes", () => {
let exits = 0;
function Harness({ active }: { active: boolean }) {
useComposerFullscreenExit(active, () => exits++);
return null;
}
const container = document.createElement("div");
document.body.append(container);
const root = createRoot(container);
try {
flushSync(() => root.render());
expect(dispatchTopOverlayKeyDown(new KeyboardEvent("keydown", { key: "Escape" }))).toBe(true);
expect(exits).toBe(1);
flushSync(() => root.render());
expect(dispatchTopOverlayKeyDown(new KeyboardEvent("keydown", { key: "Escape" }))).toBe(false);
expect(exits).toBe(1);
} finally {
root.unmount();
container.remove();
}
});