fix(test): retain safe inbound resource fault diagnostics
This commit is contained in:
@@ -46,6 +46,18 @@ test('transport unknown, duplicate result and malformed result each fail after e
|
||||
}
|
||||
assert.throws(()=>createInboundResourceRuntime({...env,CHONGCHONG_ENV:'prod'},scope));
|
||||
});
|
||||
test('remote error preserves safe stage/type/status and strips untrusted diagnostic fields',async()=>{
|
||||
const runtime=createInboundResourceRuntime(env,scope,async()=>({ok:true,text:async()=> 'INBOUND_RESOURCE_JSON='+JSON.stringify({ok:false,error:'NACOS_CONFIG_READ_HTTP_404',diagnostic:{stage:'NACOS_CONFIG_READ',errorType:'HTTPError',httpStatus:404,token:'must-never-escape',body:'secret',url:'http://private.invalid'}})}));
|
||||
await assert.rejects(runtime('preflight',{routing}),error=>{
|
||||
assert.equal(error.message,'NACOS_CONFIG_READ_HTTP_404');assert.deepEqual(error.runtimeDiagnostic,{stage:'NACOS_CONFIG_READ',errorType:'HTTPError',httpStatus:404});return true;
|
||||
});
|
||||
});
|
||||
test('DNS diagnostics preserve only bounded errno and transport class, no private resolver message',async()=>{
|
||||
const runtime=createInboundResourceRuntime(env,scope,async()=>({ok:true,text:async()=> 'INBOUND_RESOURCE_JSON='+JSON.stringify({ok:false,error:'NACOS_SOURCE_READ_TRANSPORT_FAILED',diagnostic:{stage:'NACOS_SOURCE_READ',errorType:'URLError',transportErrorType:'gaierror',errno:-2,message:'private resolver secret'}})}));
|
||||
await assert.rejects(runtime('preflight',{routing}),error=>{
|
||||
assert.deepEqual(error.runtimeDiagnostic,{stage:'NACOS_SOURCE_READ',errorType:'URLError',transportErrorType:'gaierror',errno:-2});return true;
|
||||
});
|
||||
});
|
||||
test('default plan CLI has zero HTTP and exposes no business conversion action',()=>{
|
||||
const dir=mkdtempSync(join(tmpdir(),'inbound-fault-plan-'));const file=join(dir,'plan.json');writeFileSync(file,JSON.stringify(plan));
|
||||
const run=spawnSync(process.execPath,[fileURLToPath(new URL('./inbound-plan-resource-fault-executor.mjs',import.meta.url)),'plan','--plan',file],{encoding:'utf8',env:{...process.env,CHONGCHONG_ENV:'prod',JENKINS_URL:'http://127.0.0.1:1'}});
|
||||
|
||||
Reference in New Issue
Block a user