/** * High Renaissance (cinquecento) must not flood the hall with tiny contrast * tiles or gold ring ornaments in every coffer. * node --test server/__tests__/high-renaissance-interior.test.js */ const { describe, it } = require('node:test'); const assert = require('node:assert/strict'); const fs = require('node:fs'); const path = require('node:path'); const ROOT = path.join(__dirname, '..', '..'); const STYLES = fs.readFileSync(path.join(ROOT, 'client/src/data/movement-interior-styles.ts'), 'utf8'); const DETAILS = fs.readFileSync(path.join(ROOT, 'client/src/components/hall-details/classical.tsx'), 'utf8'); function styleBlock() { const start = STYLES.indexOf("'high-renaissance-palazzo'"); assert.ok(start >= 0); return STYLES.slice(start, STYLES.indexOf('mk(', start + 1)); } function cinquecentoBlock() { const start = DETAILS.indexOf('export function CinquecentoDetails'); assert.ok(start >= 0); const next = DETAILS.indexOf('export function ', start + 1); return DETAILS.slice(start, next > start ? next : DETAILS.length); } describe('High Renaissance interior — quieter surfaces', () => { it('does not use high-contrast marble-checker flooring', () => { const block = styleBlock(); assert.doesNotMatch(block, /floor: 'marble-checker'/); assert.match(block, /floor: 'marble-veined-carrara'|floor: 'terrazzo'|floor: 'parquet/); }); it('Cinquecento coffers have no gold rosette rings', () => { const block = cinquecentoBlock(); assert.doesNotMatch(block, /rosette=\{trim\}/); assert.match(block, /CofferedCeiling/); }); });