feat: add support for legacy request object translations in Postman converter (#6174)

This commit is contained in:
Sanjai Kumar
2025-11-27 10:42:06 +05:30
committed by GitHub
parent d17048f80c
commit 6e88671788
4 changed files with 52 additions and 1 deletions

View File

@@ -35,11 +35,23 @@ const replacements = {
'pm\\.response\\.status': 'res.statusText',
'pm\\.response\\.headers': 'res.getHeaders()',
"tests\\['([^']+)'\\]\\s*=\\s*([^;]+);": 'test("$1", function() { expect(Boolean($2)).to.be.true; });',
// Supported Postman request translations:
// - pm.request.url / request.url -> req.getUrl()
// - pm.request.method / request.method -> req.getMethod()
// - pm.request.headers / request.headers -> req.getHeaders()
// - pm.request.body / request.body -> req.getBody()
// - pm.info.requestName / request.name -> req.getName()
'pm\\.request\\.url': 'req.getUrl()',
'pm\\.request\\.method': 'req.getMethod()',
'pm\\.request\\.headers': 'req.getHeaders()',
'pm\\.request\\.body': 'req.getBody()',
'pm\\.info\\.requestName': 'req.getName()',
'request\\.url': 'req.getUrl()',
'request\\.method': 'req.getMethod()',
'request\\.headers': 'req.getHeaders()',
'request\\.body': 'req.getBody()',
'request\\.name': 'req.getName()',
// deprecated translations
'postman\\.setEnvironmentVariable\\(': 'bru.setEnvVar(',
'postman\\.getEnvironmentVariable\\(': 'bru.getEnvVar(',

View File

@@ -76,11 +76,18 @@ const simpleTranslations = {
// Info
'pm.info.requestName': 'req.getName()',
// Request properties
// Request properties (pm.request.*)
'pm.request.url': 'req.getUrl()',
'pm.request.method': 'req.getMethod()',
'pm.request.headers': 'req.getHeaders()',
'pm.request.body': 'req.getBody()',
// Legacy/global request object (request.*)
'request.url': 'req.getUrl()',
'request.method': 'req.getMethod()',
'request.headers': 'req.getHeaders()',
'request.body': 'req.getBody()',
'request.name': 'req.getName()',
// Response properties
'pm.response.json': 'res.getBody',

View File

@@ -26,4 +26,20 @@ describe('postmanTranslations - request commands', () => {
`;
expect(postmanTranslation(inputScript)).toBe(expectedOutput);
});
test('should handle legacy request object without pm prefix', () => {
const inputScript = `
const url = request.url;
const method = request.method;
const body = request.body;
const name = request.name;
`;
const expectedOutput = `
const url = req.getUrl();
const method = req.getMethod();
const body = req.getBody();
const name = req.getName();
`;
expect(postmanTranslation(inputScript)).toBe(expectedOutput);
});
});

View File

@@ -105,4 +105,20 @@ describe('Request Translation', () => {
expect(translatedCode).toContain('bru.setVar("lastRequestBody", JSON.stringify(requestData));');
expect(translatedCode).toContain('bru.setEnvVar("lastContentType", contentType);');
});
it('should translate legacy request.* properties', () => {
const code = `
const url = request.url;
const method = request.method;
const body = request.body;
const name = request.name;
`;
const translatedCode = translateCode(code);
expect(translatedCode).toBe(`
const url = req.getUrl();
const method = req.getMethod();
const body = req.getBody();
const name = req.getName();
`);
});
});