Files
compras/scripts/organization-activation-preview-http.mjs
2026-11-02 20:27:11 +02:00

35 lines
2.3 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 response = await viewer.request('/administracao/parametrizacao');
assert.equal(response.status, 200);
const props = response.page.props;
const preview = props.activationPreview;
assert.equal(preview.ready, true);
assert.equal(preview.version, props.version);
assert.equal(preview.active, props.active);
assert.equal(preview.users.length, props.users.length);
const proof = {
checked_at: new Date().toISOString(), environment: base, result: 'passed', version: props.version,
active: props.active, users: preview.users.length, losing_access: preview.losing_access,
permanent_administrators: preview.permanent_administrators, can_activate: preview.can_activate,
provisional_rules: preview.provisional_rules, existing_account_used: true, business_commands: false,
accounts_or_grants_changed: false, sgf_installation_changed: false, visual_review: false
};
await fs.writeFile('docs/proofs/organization-activation-preview-http.json', JSON.stringify(proof, null, 2));
const snapshot = {
captured_at: proof.checked_at, environment: base, version: props.version, active: props.active,
company_rules: props.companyRules, enabled_contexts: props.enabledWorkContexts,
users: preview.users.map(person => ({ ...person, department_id: props.users.find(user => user.id === person.id)?.department_id ?? null })),
profiles: props.profiles, memberships: props.memberships, departments: props.departments, cost_centers: props.costCenters
};
await fs.writeFile('storage/app/pilot-access-source.json', JSON.stringify(snapshot, null, 2));
console.log(JSON.stringify({ ...proof, current_rules: props.companyRules,
registered: snapshot.users.map(person => ({ id: person.id, name: person.name, department_id: person.department_id, functions: person.current_permissions, contexts: person.current_contexts })) }, null, 2));
` + '})()')(fs, assert);