commit13
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import fs from 'node:fs/promises';
|
||||
import assert from 'node:assert/strict';
|
||||
const source = await fs.readFile('scripts/supplier-evaluation-check.mjs', 'utf8');
|
||||
const common = source.slice(source.indexOf("const base ="), source.indexOf('const author ='));
|
||||
const code = common + `
|
||||
const viewer = client(); await viewer.enter('admin');
|
||||
const dashboard = await viewer.request('/dashboard');
|
||||
if (dashboard.page?.props.context?.enforced) {
|
||||
const selected = await viewer.request('/contexto', 'POST', {area:'procurement',option:'procurement.internal'});
|
||||
assert.ok([302,303].includes(selected.status));
|
||||
}
|
||||
const proof = [];
|
||||
for (const view of ['agreements','calendar','imports','alternatives','reservations','deliveries','suggestions','history']) {
|
||||
const result = await viewer.request('/compras/fornecimento?view='+view);
|
||||
assert.equal(result.status,200); assert.equal(result.page.component, ['suggestions','history'].includes(view)?'supply/'+view:['alternatives','reservations','deliveries'].includes(view)?'supply/coordination':'supply/index'); assert.equal(result.page.props.ready,true);
|
||||
assert.equal(result.page.props.canPrepare,false);
|
||||
proof.push({view,status:result.status,ready:result.page.props.ready,admin_has_no_automatic_write:true});
|
||||
}
|
||||
const lots = await viewer.request('/stock/lotes');
|
||||
assert.equal(lots.status,200); assert.equal(lots.page.component,'stock/lots'); assert.equal(lots.page.props.ready,true);
|
||||
assert.equal(lots.page.props.capabilities.read,true);
|
||||
for (const permission of ['prepare','review','hold','release']) assert.equal(lots.page.props.capabilities[permission],false);
|
||||
proof.push({view:'lots',status:lots.status,ready:true,admin_has_no_automatic_write:true});
|
||||
const dispositions = await viewer.request('/stock/ocorrencias');
|
||||
assert.equal(dispositions.status,200); assert.equal(dispositions.page.component,'stock/dispositions'); assert.equal(dispositions.page.props.ready,true);
|
||||
for (const permission of ['prepare','review','execute']) assert.equal(dispositions.page.props.capabilities[permission],false);
|
||||
proof.push({view:'dispositions',status:dispositions.status,ready:true,admin_has_no_automatic_write:true});
|
||||
const reversals = await viewer.request('/stock/estornos');
|
||||
assert.equal(reversals.status,200); assert.equal(reversals.page.component,'stock/reversals'); assert.equal(reversals.page.props.ready,true);
|
||||
for (const permission of ['prepare','review','execute']) assert.equal(reversals.page.props.capabilities[permission],false);
|
||||
proof.push({view:'reversals',status:reversals.status,ready:true,admin_has_no_automatic_write:true});
|
||||
await fs.writeFile('docs/proofs/supply-navigation.json', JSON.stringify({checked_at:new Date().toISOString(),checks:proof},null,2));
|
||||
console.log('Eleven installed local supply/stock pages verified; no business commands or grants performed.');
|
||||
`;
|
||||
const run = new Function('fs','assert','return (async()=>{'+code+'})()');
|
||||
await run(fs,assert);
|
||||
Reference in New Issue
Block a user