12 lines
1.5 KiB
JavaScript
12 lines
1.5 KiB
JavaScript
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}));
|