import test from 'node:test'; import assert from 'node:assert/strict'; import { readFileSync } from 'node:fs'; import { readAllStylesSource } from './styles-source.mjs'; const card = readFileSync(new URL('../src/houseplan-card.ts', import.meta.url), 'utf8'); const styles = readAllStylesSource(); const openings = readFileSync(new URL('../src/iso-openings.ts', import.meta.url), 'utf8'); const packageJson = readFileSync(new URL('../package.json', import.meta.url), 'utf8'); const spaceCard = readFileSync(new URL('../src/space-card.ts', import.meta.url), 'utf8'); const spaceRender = readFileSync(new URL('../src/space-render.ts', import.meta.url), 'utf8'); test('Labs iso is presentation-only and absent from the secondary space card', () => { assert.match(card, /subscribeLabs\(CARD_VERSION/); assert.match(card, /data-hp="projection-toggle"/); assert.match(card, /this\._labsIso && this\._mode === 'view' && !this\._kiosk/); assert.doesNotMatch(spaceCard, /hp-labs|iso-walls|projection-toggle|view\.volumetric/); assert.doesNotMatch(spaceRender, /hp-labs|iso-walls|projection-toggle|view\.volumetric/); }); test('Stage 2 uses inert shared-projection SVG geometry without a second light model', () => { assert.match(card, /