import assert from "node:assert/strict"; import test from "node:test"; import {createElement} from "react"; import {renderToStaticMarkup} from "react-dom/server"; import {ProgressBar,ResourceRow} from "../packages/ui-react/dist/index.js"; test("progress exposes bounded measured values and unknown state without false percentages",()=>{ for(const [value, expected] of [[-1,0],[.5,50],[2,100]]) { const html=renderToStaticMarkup(createElement(ProgressBar,{label:"Этапы",value})); assert.match(html,new RegExp(`aria-valuenow="${expected}"`)); } for(const value of [undefined,NaN,Infinity]) { const html=renderToStaticMarkup(createElement(ProgressBar,{label:"Ожидание",value})); assert.doesNotMatch(html,/aria-valuenow/);assert.match(html,/data-indeterminate="true"/); } }); test("row keeps progress between name and actions and suppresses duplicate status",()=>{ const html=renderToStaticMarkup(createElement(ResourceRow,{title:"Камера",status:"Old status",actions:"Actions",progress:{label:"Загрузка",value:.2}})); assert.ok(html.indexOf("Камера")