Files
bruno/packages/bruno-converters/tests/postman/postman-translations/transpiler-tests/exec-flow.test.js
sharan-bruno 611724a744 Fix/pm.set next request(null) not translating (#8062)
* fix: 3093 - Fix pm.setNextRequest(null) not translating to bru.runner.stopExecution()

* addressed review comments

* addressed review comments

* Behavioral change for null case and added transilation for pm.exicution.setNextRequest("req")

* addressed review comments
2026-05-21 18:09:22 +05:30

95 lines
4.0 KiB
JavaScript

import translateCode from '../../../../src/utils/postman-to-bruno-translator';
describe('Execution Flow Translation', () => {
// Request flow control
it('should translate pm.setNextRequest', () => {
const code = 'pm.setNextRequest("Get User Details");';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.setNextRequest("Get User Details");');
});
it('should translate pm.setNextRequest(null) to bru.runner.stopExecution()', () => {
const code = 'pm.setNextRequest(null);';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.stopExecution();');
});
it('should translate pm.setNextRequest("null") to bru.runner.setNextRequest("null") (string is a valid request name)', () => {
const code = 'pm.setNextRequest("null");';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.setNextRequest("null");');
});
it('should keep pm.setNextRequest(<request name>) as bru.setNextRequest(<request name>) for non-null arguments', () => {
const code = 'pm.setNextRequest("Get User Details");';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.setNextRequest("Get User Details");');
});
it('should translate pm.execution.skipRequest', () => {
const code = 'if (condition) pm.execution.skipRequest();';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('if (condition) bru.runner.skipRequest();');
});
it('should translate pm.execution.setNextRequest(null)', () => {
const code = 'pm.execution.setNextRequest(null);';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.stopExecution();');
});
it('should translate pm.execution.setNextRequest("null") to bru.runner.setNextRequest("null") (string is a valid request name)', () => {
const code = 'pm.execution.setNextRequest("null");';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.setNextRequest("null");');
});
it('should translate pm.execution.setNextRequest("req1") to bru.runner.setNextRequest("req1")', () => {
const code = 'pm.execution.setNextRequest("req1");';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.setNextRequest("req1");');
});
it('should translate pm.execution.setNextRequest() with no arguments to bru.runner.setNextRequest()', () => {
const code = 'pm.execution.setNextRequest();';
const translatedCode = translateCode(code);
expect(translatedCode).toBe('bru.runner.setNextRequest();');
});
it('should handle pm.execution.setNextRequest with non-null parameters', () => {
const code = `
// Continue normal flow
pm.execution.setNextRequest("Get user details");
// With variable
const nextReq = "Update profile";
pm.execution.setNextRequest(nextReq);
`;
const translatedCode = translateCode(code);
expect(translatedCode).toContain('bru.runner.setNextRequest("Get user details");');
expect(translatedCode).toContain('bru.runner.setNextRequest(nextReq);');
});
it('should handle all execution control methods together', () => {
const code = `
// All execution control methods
if (pm.response.code === 401) {
pm.execution.skipRequest();
} else if (pm.response.code === 500) {
pm.execution.setNextRequest(null);
} else {
pm.setNextRequest("Get User Details");
}
`;
const translatedCode = translateCode(code);
expect(translatedCode).toContain('if (res.getStatus() === 401) {');
expect(translatedCode).toContain('bru.runner.skipRequest();');
expect(translatedCode).toContain('} else if (res.getStatus() === 500) {');
expect(translatedCode).toContain('bru.runner.stopExecution();');
expect(translatedCode).toContain('} else {');
expect(translatedCode).toContain('bru.runner.setNextRequest("Get User Details");');
});
});