import test from 'node:test'; import assert from 'node:assert/strict'; import { createElement } from 'react'; import { renderToStaticMarkup } from 'react-dom/server'; import { RulesetControls, AdvancedPreviewNotice, } from '../components/ruleset-controls'; import { createRoomEntry, parseRoomEntry } from '../lib/room-entry'; void test('rules controls identify the unfinished selection before readiness and restrict peer editing', () => { const render = (advanced: boolean, host: boolean) => renderToStaticMarkup( createElement(RulesetControls, { advanced, host, lobby: true, onChange() {}, }), ); assert.match(render(false, true), /value="basic" selected=""/); const preview = render(true, true); assert.match(preview, /value="advanced" selected=""/); assert.match(preview, /Rules and card interactions are still/); assert.match(preview, /Classic and supported expansion selections are unfinished previews/); assert.match(preview, /Changing rules clears player readiness/); assert.match(preview, /Switching to Basic removes Stronghold Cards/); assert.match(render(true, false), /