17 lines
1.1 KiB
JavaScript
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(); }
|