'use strict'; // Local test/dev runner only. The production service launches h5/server.js directly. const fs = require('node:fs'), path = require('node:path'), vm = require('node:vm'); if (!process.env.JUZI_DATA_ROOT || !process.env.PUBLIC_BASE_URL) throw Error('Explicit isolated data root and public URL required'); Object.assign(process.env, { NODE_ENV: 'test', HOST: '127.0.0.1', SKIN_API_KEY: 'fixture', SKIN_API_SECRET: 'fixture', WECHAT_APP_ID: '', WECHAT_APP_SECRET: '', TAOBAO_APP_KEY: '', TAOBAO_APP_SECRET: '' }); const root = path.resolve(__dirname, '../..'), context = { window: {} }; vm.runInNewContext(fs.readFileSync(path.join(root, 'h5/assets/mock/report-fixture.js'), 'utf8'), context); const fixture = context.window.MOCK_FIXTURE; global.fetch = async url => { if (!String(url).startsWith('https://api-cn.faceplusplus.com/')) throw Error('External requests disabled in fixture mode'); if (process.env.FIXTURE_DELAY_MS) await new Promise(resolve => setTimeout(resolve, Number(process.env.FIXTURE_DELAY_MS))); return { ok: true, status: 200, json: async () => ({ request_id: 'fixture', result: structuredClone(fixture.result), face_rectangle: fixture.face_rectangle, left_side_result: fixture.side.left, right_side_result: fixture.side.right }) }; }; require('../../h5/server');