Files
SGF/scripts/budget-workspace-render-check.mjs
T
2026-10-29 18:43:29 +02:00

17 lines
1.1 KiB
JavaScript

import assert from 'node:assert/strict';
import {createServer} from 'vite';
const server=await createServer({server:{middlewareMode:true},appType:'custom'});
try {
const {budgetMoney}=await server.ssrLoadModule('/resources/js/PurchasingBudgetWorkspace.jsx');
const {navigationGroups}=await server.ssrLoadModule('/resources/js/WorkspaceNavigation.jsx');
assert.equal(budgetMoney(100000),'1 000.00 MZN');
assert.equal(budgetMoney(-35000),'-350.00 MZN');
assert.equal(budgetMoney(65000),'650.00 MZN');assert.equal(budgetMoney(85000),'850.00 MZN');
assert.equal(budgetMoney(99999999999999),'999 999 999 999.99 MZN');
assert.equal(budgetMoney(null),'Indisponível');
const visible=grants=>navigationGroups((p,u)=>grants.some(g=>g[0]===p&&g[1]===u),7).flatMap(g=>g.items).some(i=>i.id==='purchasing_budget');
assert(visible([['purchasing_budget.view',7]]));
assert(!visible([['purchasing_budget.view',8]]));assert(!visible([]));
console.log('Budget UI checks passed: exact cent formatting, signed deltas, unknown values and navigation scoped to the permitted unit. Not a browser visual review.');
} finally { await server.close(); }