const test = require('node:test'); const assert = require('node:assert/strict'); const { execFileSync } = require('node:child_process'); const path = require('node:path'); test('the public loader version follows every runtime JS mtime and falls back when none exist', () => { const harness = path.join(__dirname, 'runtime-assets-behavior-harness.php'); const result = JSON.parse(execFileSync('php', [harness], { encoding: 'utf8' })); // Initial tree: main.min.js is newest. Then only main.min.js changes, then // a leaf module changes, and finally the runtime tree is empty. assert.deepEqual(result.versions, result.expected); assert.ok(Number(result.versions[1]) > Number(result.versions[0])); assert.ok(Number(result.versions[2]) > Number(result.versions[1])); assert.equal(result.versions[3], 'theme-fallback'); });