import assert from "node:assert/strict"; import { createElement, createRef } from "react"; import { renderToString } from "react-dom/server"; import test from "node:test"; import { AccountDialogOverlay, type AccountOverlayModel, } from "../src/components/account-dialog-overlay.tsx"; test("a closed account overlay does not render profile or logout content", () => { const overlayRef = createRef() as AccountOverlayModel["overlayRef"]; const closeButtonRef = createRef() as AccountOverlayModel["closeButtonRef"]; const modelRef = createRef() as { current: AccountOverlayModel | null }; let profileRenders = 0; let logoutRenders = 0; modelRef.current = { title: "个人资料", dialogClass: "profile-modal", signingOut: false, close() {}, navigate() {}, openRedeem() {}, overlayRef, closeButtonRef, renderProfile() { profileRenders += 1; return null; }, renderChartLibrary() { return null; }, renderGeneral() { return null; }, renderLogout() { logoutRenders += 1; return null; }, }; const html = renderToString(createElement(AccountDialogOverlay, { open: false, dialog: null, openEpoch: 0, modelRef, })); assert.equal(html, ""); assert.equal(profileRenders, 0); assert.equal(logoutRenders, 0); });