import fs from 'node:fs';import assert from 'node:assert/strict';import {session} from './sgf-single-http.mjs'; const checks=[];for(const [profile,module,paths]of [ ['sgf:commercial_prepare','commercial',['/','/api/service-invoices']], ['purchasing:actor','purchasing',['/purchasing/workspace']], ['purchasing:validator','stock',['/api/stock-read','/stock/operations']], ['sgf:workshop_manage','workshop',['/api/workshop']], ['sgf:finance_prepare','finance',['/finance/payables','/api/finance/payables','/api/service-receivables','/api/industrial-costs']], ['sgf:accounting_prepare','accounting',['/general-ledger','/api/general-ledger','/general-ledger/trial-balance?from_on=2026-01-01&to_on=2026-12-31']], ['sgf:read_only','finance',['/finance/payables']] ]){const client=await session(profile,module);for(const path of paths){const r=await client.get(path);const body=await r.text();assert.equal(r.status,200,`${profile} ${path}: ${body.slice(0,200)}`);checks.push(`${profile} ${path}200`);}if(profile==='sgf:read_only'){const r=await client.command('/api/finance/payables/payment-prepare',{});assert.equal(r.status,403);checks.push('read-only financial writer403');}} const run=JSON.parse(fs.readFileSync('C:/laragon/data/sgf-tempo/run/modular-regression-current.json'));const proof=run.root+'/private/receipt-composition-cc50a276c10c/single-read-http-20261110.json';fs.writeFileSync(proof,JSON.stringify({passed:true,checks,business_commands:0,browser_visual_review:false},null,2));console.log(JSON.stringify({passed:true,checks:checks.length,proof}));