14 lines
1.7 KiB
JavaScript
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();}})();
|