diff --git a/packages/bruno-converters/src/utils/bruno-to-postman-translator.js b/packages/bruno-converters/src/utils/bruno-to-postman-translator.js index 308e8470a..e5494935b 100644 --- a/packages/bruno-converters/src/utils/bruno-to-postman-translator.js +++ b/packages/bruno-converters/src/utils/bruno-to-postman-translator.js @@ -62,6 +62,11 @@ const simpleTranslations = { 'req.getHeader': 'pm.request.headers.get', 'req.setHeader': 'pm.request.headers.set', + // URL helper methods + 'req.getHost': 'pm.request.url.getHost', + 'req.getPath': 'pm.request.url.getPath', + 'req.getQueryString': 'pm.request.url.getQueryString', + // Response helpers // Note: res.getStatus(), res.getResponseTime(), res.getHeaders(), res.getUrl() are handled // in complexTransformations because they're function -> property conversions @@ -202,6 +207,11 @@ const complexTransformations = [ pattern: 'req.getAuthMode', transform: () => buildMemberExpressionFromString('pm.request.auth.type') }, + // req.getPathParams() -> pm.request.url.variables + { + pattern: 'req.getPathParams', + transform: () => buildMemberExpressionFromString('pm.request.url.variables') + }, // Response helpers: function -> property conversions // res.getStatus() -> pm.response.code diff --git a/packages/bruno-converters/tests/bruno/bruno-to-postman-translations/request.test.js b/packages/bruno-converters/tests/bruno/bruno-to-postman-translations/request.test.js index 9c15df9fe..e6fb159c2 100644 --- a/packages/bruno-converters/tests/bruno/bruno-to-postman-translations/request.test.js +++ b/packages/bruno-converters/tests/bruno/bruno-to-postman-translations/request.test.js @@ -178,4 +178,29 @@ console.log("Headers:", JSON.stringify(pm.request.headers)); const translatedCode = translateBruToPostman(code); expect(translatedCode).toBe('const body = {id: 1}; pm.request.body.update({\n mode: "raw",\n raw: JSON.stringify(body)\n});'); }); + + // URL helper methods tests + it('should translate req.getHost() to pm.request.url.getHost()', () => { + const code = 'const host = req.getHost();'; + const translatedCode = translateBruToPostman(code); + expect(translatedCode).toBe('const host = pm.request.url.getHost();'); + }); + + it('should translate req.getPath() to pm.request.url.getPath()', () => { + const code = 'const path = req.getPath();'; + const translatedCode = translateBruToPostman(code); + expect(translatedCode).toBe('const path = pm.request.url.getPath();'); + }); + + it('should translate req.getQueryString() to pm.request.url.getQueryString()', () => { + const code = 'const queryString = req.getQueryString();'; + const translatedCode = translateBruToPostman(code); + expect(translatedCode).toBe('const queryString = pm.request.url.getQueryString();'); + }); + + it('should translate req.getPathParams() to pm.request.url.variables (function to property)', () => { + const code = 'const pathParams = req.getPathParams();'; + const translatedCode = translateBruToPostman(code); + expect(translatedCode).toBe('const pathParams = pm.request.url.variables;'); + }); });