'use strict'; const assert = require('node:assert/strict'); const { spawnSync } = require('node:child_process'); const fs = require('node:fs'); const path = require('node:path'); const test = require('node:test'); const root = path.resolve(__dirname, '..', '..'); test('header multifunction renders reference slide, search, and card contracts on desktop and mobile', () => { const rendered = spawnSync( process.env.PHP_BINARY || 'php', [path.join(__dirname, 'header-multifunction-render-harness.php')], { cwd: root, encoding: 'utf8' }, ); assert.equal(rendered.status, 0, rendered.stderr || rendered.stdout); const { desktop, mobile, module_background: moduleBackground } = JSON.parse(rendered.stdout); assert.match(desktop, /data-src="https:\/\/example\.test\/slide\.jpg"/); assert.match(desktop, /data-swiper-parallax="40%" data-swiper-parallax-opacity="0\.8" data-swiper-parallax-scale="1\.1"/); assert.match(desktop, /data-src="https:\/\/example\.test\/pc-only\.jpg"/); assert.doesNotMatch(desktop, /mobile-only\.jpg/); assert.match(desktop, /class="swiper-slide slide-background-video"/); assert.match(desktop, /data-src="https:\/\/example\.test\/background\.mp4"/); assert.match(desktop, /class="new-dplayer" video-url="https:\/\/example\.test\/content\.mp4" video-type="auto"/); assert.match(desktop, /class="absolute dplayer-poster"/); assert.doesNotMatch(desktop, /