21 lines
1.3 KiB
JavaScript
21 lines
1.3 KiB
JavaScript
import fs from 'node:fs/promises';
|
|
import assert from 'node:assert/strict';
|
|
const source=await fs.readFile('scripts/settlements-http-proof.mjs','utf8');
|
|
const definition=source.slice(source.indexOf(' function client()'),source.indexOf(' const p=client()'));
|
|
const results=[];
|
|
for(const mode of ['compras','sgf']) {
|
|
const base=`http://127.0.0.1:${mode==='compras'?8005:8006}`;
|
|
const client=eval('('+definition.trim().replace(/^function client/, 'function')+')');
|
|
for(const role of ['preparacao','validacao','consulta']) {
|
|
const c=client();await c.login(role);
|
|
const html=await c.request('/supplier-payments');assert.equal(html.status,200);
|
|
const data=await c.list();assert.equal(data.payments.length,0);
|
|
const old=await c.request(mode==='compras'?'/obrigacoes-fornecedores':'/supplier-payables');assert.equal(old.status,200);assert.ok(old.text.includes('/supplier-payments'));
|
|
results.push({host:mode,role,status:html.status,payments:data.payments.length});
|
|
await c.request('/logout','POST',{});
|
|
}
|
|
}
|
|
await fs.writeFile('docs/proofs/supplier-settlements-demo-access.json',JSON.stringify({checked_at:new Date().toISOString(),kind:'HTTP and HTML only; no visual review or monetary commands',results},null,2)+'\n');
|
|
console.log('Both existing demonstrations: all three roles, payments page/API and obligation link passed; no monetary commands.');
|
|
|