25 lines
1.4 KiB
JavaScript
25 lines
1.4 KiB
JavaScript
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('../../../packages/sensor-ui/src/sensorStatus.ts',import.meta.url),'utf8');
|
|
const code=ts.transpileModule(source,{compilerOptions:{module:ts.ModuleKind.ESNext}}).outputText;
|
|
const {sensorStatus}=await import('data:text/javascript;base64,'+Buffer.from(code).toString('base64'));
|
|
const connected={online:true,configured:true,prepared:true,verified:false,snapshot:{acquisition:'idle',enrollment:'enrolled'}};
|
|
|
|
test('a configured, reconnected camera is connected before another frame verification',()=>{
|
|
assert.deepEqual(sensorStatus(connected,true),{label:'Подключено',tone:'success'});
|
|
});
|
|
test('stale board data cannot assert camera connectivity',()=>{
|
|
assert.equal(sensorStatus(connected,false).tone,'neutral');
|
|
assert.equal(sensorStatus({...connected,online:false},true).label,'Не подключено');
|
|
});
|
|
test('a capture failure or unavailable driver is not shown as healthy',()=>{
|
|
assert.equal(sensorStatus({...connected,snapshot:{acquisition:'failed'}},true).tone,'danger');
|
|
assert.equal(sensorStatus({...connected,prepared:false},true).tone,'warning');
|
|
});
|
|
test('an unconfigured camera still requires preparation',()=>{
|
|
assert.deepEqual(sensorStatus({...connected,configured:false},true),{label:'Требуется подготовка',tone:'neutral'});
|
|
});
|