Files
Investidor-V2/tools/portal-functional-document-alias-qa.cjs
nala 287e991486
tests / ci (push) Waiting to run
oportunidades 7
2026-10-13 11:40:29 +02:00

14 lines
1.7 KiB
JavaScript

const {start,assert,DIR,path,fs,sanitized}=require('./portal-functional-qa-lib.cjs');
void(async()=>{const before=process.argv.includes('--before');const q=await start('functional-document-alias-'+(before?'before':'after')+'-20261011');let ctx,page;try{
const inspection=JSON.parse(fs.readFileSync(path.join(DIR,'functional-scope-inspection-qa-20261011.json'),'utf8'));
const link=inspection.links.find(l=>l.opportunity_id===54);assert(link);q.proof.resource_id=link.id;q.proof.document_id=link.document_id;
({ctx,page}=await q.context('manager'));await q.login(page,'manager');
async function binary(route){return page.evaluate(async u=>{const r=await fetch(u,{headers:{Accept:'application/json'}});return {status:r.status,target:r.headers.get('X-Investmoz-QA-Target'),type:r.headers.get('content-type')};},route);}
const alias=await binary('/management/documents/'+link.document_id+'/download');
q.proof.generic_management_download_status=alias.status;
assert.equal(alias.status,before?200:403);
const protectedRoute=await binary('/minhas-oportunidades/54/resources/documents/'+link.id+'/download');assert.equal(protectedRoute.status,403);
q.proof.opportunity_download_status=protectedRoute.status;q.proof.checks.manager_without_functional_profile_denied=before?'reproduced bypass':true;
q.proof.result='passed';q.save();console.log(JSON.stringify({result:'passed',before,alias_status:alias.status,profile_route_status:protectedRoute.status,active_writes:0}));
}catch(e){q.proof.result='failed';q.proof.failure=sanitized(e);q.save();console.log(JSON.stringify({result:'failed',failure:q.proof.failure,active_writes:0}));process.exitCode=1;}finally{if(ctx)await ctx.close();await q.browser.close();}})();