commit15
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import fs from 'node:fs/promises';
|
||||
import React from 'react';
|
||||
import {renderToStaticMarkup} from 'react-dom/server';
|
||||
import {createServer} from 'vite';
|
||||
const server=await createServer({configFile:false,server:{middlewareMode:true,watch:null},appType:'custom',optimizeDeps:{noDiscovery:true}});
|
||||
try {
|
||||
const {default:Workspace}=await server.ssrLoadModule('/resources/js/WorkshopMenuWorkspace.jsx');
|
||||
const context={token:'synthetic',company:{id:1,name:'Synthetic'},unit:{id:7,name:'Synthetic'}};
|
||||
const render=can=>renderToStaticMarkup(React.createElement(Workspace,{section:'workshop_stock',context,can,navigate:()=>{},api:()=>{throw Error('SSR must not fetch');}}));
|
||||
const denied=render(p=>p==='company.view'||p==='workshop.view');
|
||||
assert(!denied.includes('Conferência de consumo de material'));
|
||||
const allowed=render((p,u)=>u===7&&['workshop.view','workshop_stock.view'].includes(p));
|
||||
assert(allowed.includes('Conferência de consumo de material'));
|
||||
assert(allowed.includes('A consultar origens autorizadas'));
|
||||
assert(!allowed.includes('Capacidade ainda não disponível'));
|
||||
assert(!allowed.includes('value="0"'));
|
||||
await fs.writeFile('docs/proofs/workshop-stock-ui-20261102.json',JSON.stringify({kind:'static_render',permission_separation:true,pending_notice_removed_for_authorized_view:true,loading_not_zero:true,backend_requests:0,visual_review:false},null,2)+'\n');
|
||||
console.log('Workshop stock static rendering passed. Visual review pending.');
|
||||
} finally {await server.close();}
|
||||
Reference in New Issue
Block a user