'use strict'; const assert = require('node:assert/strict'); const fs = require('node:fs'); const path = require('node:path'); const { spawnSync } = require('node:child_process'); const test = require('node:test'); const root = path.resolve(__dirname, '../..'); const result = spawnSync(process.env.PHP_BINARY || 'php', [path.join(__dirname, 'post-thumbnail-render-harness.php')], { cwd: root, encoding: 'utf8' }); assert.equal(result.status, 0, result.stderr || result.stdout); const rendered = JSON.parse(result.stdout); test('configured thumbnail ratios override body defaults for both list and card covers', () => { const main = fs.readFileSync(path.join(root, 'assets/css/main.css'), 'utf8'); assert.match(main, /^body\s*\{[^}]*--posts-card-scale:\s*70%;[^}]*--posts-list-scale:\s*70%;/s); for (const [scenario, list, card] of [['defaults', 70, 70], ['custom', 100, 56], ['bounds', 50, 200]]) { const html = rendered.styles[scenario]; const body = html.match(/