Fix: incorrect translations (#7214)

* feat: update req.setHeader translation to use pm.request.headers.add with object argument

empty commit

* refactor: update req.setHeader translation to use pm.request.headers.upsert
This commit is contained in:
sanish chirayath
2026-02-19 15:53:42 +05:30
committed by GitHub
parent ab2a16ac05
commit 3c585a30b7
2 changed files with 25 additions and 3 deletions

View File

@@ -70,7 +70,7 @@ const simpleTranslations = {
'req.headers': 'pm.request.headers',
'req.body': 'pm.request.body',
'req.getHeader': 'pm.request.headers.get',
'req.setHeader': 'pm.request.headers.set',
// Note: req.setHeader is handled in complexTransformations because it needs arg restructuring (two args -> object)
'req.deleteHeader': 'pm.request.headers.remove',
// URL helper methods
@@ -318,6 +318,28 @@ const complexTransformations = [
return updateCall;
}
},
// req.setHeader(key, value) -> pm.request.headers.upsert({key: key, value: value})
{
pattern: 'req.setHeader',
transform: (path) => {
const args = path.value.arguments;
if (!args || args.length < 2) {
return j.callExpression(
buildMemberExpressionFromString('pm.request.headers.upsert'),
args || []
);
}
return j.callExpression(
buildMemberExpressionFromString('pm.request.headers.upsert'),
[
j.objectExpression([
j.property('init', j.identifier('key'), args[0]),
j.property('init', j.identifier('value'), args[1])
])
]
);
}
},
// req.setHeaders(headers) -> loop calling pm.request.headers.upsert() for each header
{
pattern: 'req.setHeaders',

View File

@@ -73,10 +73,10 @@ describe('Bruno to Postman Request Translation', () => {
expect(translatedCode).toBe('const contentType = pm.request.headers.get("Content-Type");');
});
it('should translate req.setHeader() to pm.request.headers.set()', () => {
it('should translate req.setHeader() to pm.request.headers.upsert() with object arg', () => {
const code = 'req.setHeader("Authorization", "Bearer token123");';
const translatedCode = translateBruToPostman(code);
expect(translatedCode).toBe('pm.request.headers.set("Authorization", "Bearer token123");');
expect(translatedCode).toContain('pm.request.headers.upsert({\n key: "Authorization",\n value: "Bearer token123"\n})');
});
it('should translate req.deleteHeader() to pm.request.headers.remove()', () => {