import test from 'node:test'; import assert from 'node:assert/strict'; import {readFileSync} from 'node:fs'; import ts from 'typescript'; const source=readFileSync(new URL('../../../plugins/insta360-x4/frontend/src/model.ts',import.meta.url),'utf8'); const code=ts.transpileModule(source,{compilerOptions:{module:ts.ModuleKind.ESNext}}).outputText; const {cameraLabel,cameraStatus,resolutionLabel,cameraRowActions}=await import('data:text/javascript;base64,'+Buffer.from(code).toString('base64')); const camera={id:'instax4_synthetic_a',online:true,configured:true,prepared:true,snapshot:{enrollment:'enrolled'},camera_status:{connected:true,recording:0,preview:0,function_mode:7}}; test('SD recording remains visible after preview closes, independently for each camera',()=>{ const recording={...camera,camera_status:{...camera.camera_status,recording:1}}; assert.equal(cameraLabel(recording,true).label,'Запись на карту камеры'); assert.equal(cameraLabel({...camera,id:'instax4_synthetic_b'},true).label,'Подключена'); assert.equal(cameraStatus(recording).preview,0); }); test('stale and unconfirmed camera state never appears ready or actively recording',()=>{ assert.equal(cameraLabel({...camera,camera_status:{...camera.camera_status,recording:1}},false).tone,'neutral'); assert.equal(cameraLabel({...camera,camera_status:{}},true).tone,'warning'); assert.equal(cameraLabel({...camera,camera_status:{...camera.camera_status,preview:-1}},true).tone,'warning'); assert.equal(cameraStatus({...camera,camera_status:{preview:true,recording:'1',connected:1}}).preview,null); }); test('installed model support does not enroll a new physical camera',()=>{ assert.equal(cameraLabel({...camera,configured:false},true).label,'Требуется подготовка'); assert.equal(cameraLabel({...camera,initializable:false},true).tone,'warning'); }); test('SDK resolution names are presented with their actual dimensions and frame rate',()=>{ assert.equal(resolutionLabel('3840_1920_30'),'3840 × 1920 · 30 кадр/с'); }); test('manual wake is available for an enrolled offline camera with automatic recovery disabled',()=>{ const offline={...camera,online:false,camera_status:{recovery:{supported:true,enabled:false,wake_available:true}}}; assert.equal(cameraRowActions(offline)[0].actionId,'power.wake'); assert.equal(cameraRowActions(offline)[0].disabled,false); assert.deepEqual(cameraRowActions({...offline,online:true}),[]); assert.equal(cameraRowActions({...offline,configured:false})[0].disabled,true); assert.equal(cameraRowActions({...offline,prepared:false})[0].disabled,true); assert.equal(offline.camera_status.recovery.enabled,false); }); test('old drivers and unknown wake identities never offer an active power command',()=>{ assert.deepEqual(cameraRowActions(camera),[]); assert.equal(cameraRowActions({...camera,online:false,camera_status:{recovery:{supported:true}}})[0].disabled,true); });