import { test } from 'node:test';
import assert from 'node:assert/strict';
import { build } from 'esbuild';
import { fileURLToPath } from 'node:url';
import { createRequire } from 'node:module';
import { readFileSync } from 'node:fs';
const root=fileURLToPath(new URL('..',import.meta.url));
const result=await build({stdin:{contents:`import React from 'react'; import {renderToStaticMarkup} from 'react-dom/server'; import Panel from './client/src/components/FirPanel'; import {firTranslate} from './client/src/lib/firLocale'; import {FirRoomDetailsBody} from './client/src/components/FirRoomDetails'; import {firImageUrl} from './client/src/lib/fir'; export {firTranslate,firImageUrl}; export const renderDetails=(room)=>renderToStaticMarkup(React.createElement(FirRoomDetailsBody,{room,language:0})); export const render=()=>renderToStaticMarkup(React.createElement(Panel));`,resolveDir:root},bundle:true,write:false,jsx:'automatic',format:'cjs',platform:'node',alias:{'@':root+'/client/src'},define:{'import.meta.env.VITE_FIR_API_BASE':'"/fir-library"'},plugins:[{name:'device-fixture',setup(b){b.onLoad({filter:/contexts\/DeviceContext\.tsx$/},()=>({contents:'export const useDevice=()=>globalThis.__firDevice;',loader:'js'}));}}]});
const module={exports:{}};new Function('require','module','exports',result.outputFiles[0].text)(createRequire(import.meta.url),module,module.exports);
const {render,firTranslate}=module.exports;
test('FIR off shows only heading and switch, no form or descriptions',()=>{
globalThis.__firDevice={ip:'test',api:{},isConnected:true,isDemoMode:false,deviceState:{language:0,fir_enable:0}};
const html=render();assert.match(html,/FIR/);assert.doesNotMatch(html,/