// Render-only checks: no browser, database, credentials or additional dependencies. import assert from 'node:assert/strict'; import React from 'react'; import {renderToStaticMarkup} from 'react-dom/server'; import {createServer} from 'vite'; const server=await createServer({server:{middlewareMode:true},appType:'custom'}); try { const {navigationGroups}=await server.ssrLoadModule('/resources/js/WorkspaceNavigation.jsx'); const {default:Home}=await server.ssrLoadModule('/resources/js/WorkspaceHome.jsx'); const context={company:{name:'Empresa sintética'},unit:{id:7,name:'Unidade sintética'}}; const check=(grants)=>{ const can=(permission,unit=null)=>grants.some(g=>g[0]===permission&&g[1]===unit); const groups=navigationGroups(can,7); return {groups,html:renderToStaticMarkup(React.createElement(Home,{context,can,groups,navigate:()=>{}}))}; }; const preparer=check([['company.view',null],['industrial_budgets.view',7],['industrial_budgets.prepare',7]]); assert(preparer.html.includes('A preparar e acompanhar'));assert(!preparer.html.includes('