Files
compras/scripts/internal-supply-integration-http.mjs
T
2026-11-02 20:27:11 +02:00

31 lines
1.8 KiB
JavaScript

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 ='));
await new Function('fs', 'assert', 'return (async()=>{' + common + `
const viewer = client();
await viewer.enter('admin');
const dashboard = await viewer.request('/dashboard');
if (dashboard.page?.props.context?.enforced || dashboard.page?.props.workContext?.enforced) {
await viewer.request('/contexto', 'POST', { area: 'procurement', option: 'procurement.internal' });
}
const index = await viewer.request('/stock/requisicoes');
assert.equal(index.status, 200);
let checkedDetails = 0;
for (const record of (index.page?.props.records?.data ?? []).slice(0, 3)) {
const detail = await viewer.request('/stock/requisicoes/' + record.id);
assert.equal(detail.status, 200);
assert.equal(typeof detail.page.props.supplyTrace.ready, 'boolean');
assert.ok(Array.isArray(detail.page.props.supplyTrace.groups));
checkedDetails++;
}
await fs.writeFile('docs/proofs/internal-supply-integration-http.json', JSON.stringify({
checked_at: new Date().toISOString(), environment: base, result: 'passed', internal_sgc_only: true,
warehouse_index: true, existing_request_details_checked: checkedDetails,
synthetic_journeys_in_disposable_tests: true, persistent_business_commands: false,
accounts_or_grants_changed: false, sgf_installation_changed: false, visual_review: false
}, null, 2));
console.log('Consulta da integração interna conferida; detalhes existentes verificados: ' + checkedDetails);
` + '})()')(fs, assert);