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) await viewer.request('/contexto','POST',{area:'procurement',option:'procurement.internal'}); const settings = await viewer.request('/administracao/parametrizacao'); assert.equal(settings.status,200); assert.equal(settings.page.props.workflowTasks.department_head[0].key,'requisition.approve.department_head'); assert.ok(settings.page.props.workflowTasks.warehouse_request_prepare); const warehouseDrafts = await viewer.request('/stock/requisicoes'); assert.equal(warehouseDrafts.status,200); assert.equal(warehouseDrafts.page.props.ready,true); assert.equal(warehouseDrafts.page.props.fulfilmentReady,true); assert.equal(warehouseDrafts.page.props.canPrepare,false); const availability = await viewer.request('/stock/disponibilidade'); assert.equal(availability.status,200); const notices = await viewer.request('/requisicoes/avisos'); assert.equal(notices.status,200); assert.equal(notices.page.component,'workflow/notices'); assert.equal(notices.page.props.ready,true); for (const view of ['tasks','outcomes','unread']) { const filtered = await viewer.request('/requisicoes/avisos?view='+view); assert.equal(filtered.status,200); assert.equal(filtered.page.props.view,view); } const list = await viewer.request('/requisicoes'); assert.equal(list.status,200); const record = list.page.props.requisitions.data[0]; let detail = 'no existing requisition'; if (record) { const response = await viewer.request('/requisicoes/'+record.id); assert.equal(response.status,200); assert.ok(Array.isArray(response.page.props.approvalRouting.people)); detail = response.page.props.approvalRouting.status; } await fs.writeFile('docs/proofs/approval-routing-http.json',JSON.stringify({checked_at:new Date().toISOString(),environment:base,profile_task_catalogue:'passed',workflow_notices:'ready',existing_requisition_routing:detail,business_commands:false,accounts_or_grants_changed:false,visual_browser_review:false},null,2)); console.log('Profile task catalogue and existing requisition routing verified.'); ` + '})()')(fs, assert);