Skip to content

Commit 5911e57

Browse files
authored
fix: Nested Requests aborting execution on error in scripts (#1526)
1 parent 5664702 commit 5911e57

File tree

3 files changed

+84
-1
lines changed

3 files changed

+84
-1
lines changed

CHANGELOG.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
unreleased:
2+
fixed bugs:
3+
- GH-1526 Fixed a bug where nested requests were not aborting the run on failure in assertions
4+
15
7.46.0:
26
date: 2025-09-08
37
new features:

lib/runner/nested-request.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ function runNestedRequest ({ executionId, isExecutionSkipped, vaultSecrets, item
109109
environment: environment,
110110
localVariables: localVariables,
111111
vaultSecrets: clonedVaultSecrets,
112-
abortOnFailure: true,
112+
stopOnError: true,
113113
host: {
114114
// Reuse current run's sandbox host across nested executions
115115
external: true,

test/integration/runner-spec/run-collection-request.test.js

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -726,4 +726,83 @@ describe('pm.execution.runRequest handling', function () {
726726
});
727727
});
728728
});
729+
730+
it('should not abort execution on encountering failure in nested request assertions', function (done) {
731+
const collection = new sdk.Collection({
732+
item: [{
733+
event: [{
734+
listen: 'prerequest',
735+
script: {
736+
exec: `
737+
await pm.execution.runRequest("nested-request-id");
738+
pm.test('[l0-prerequest] this test should have run', function () {
739+
pm.expect(true).to.equal(true);
740+
});
741+
`
742+
}
743+
}, {
744+
listen: 'test',
745+
script: {
746+
exec: `
747+
pm.test('[l0-test] this test should also have run', function () {
748+
pm.expect(true).to.equal(false);
749+
});
750+
`
751+
}
752+
}],
753+
request: {
754+
url: 'https://postman-echo.com/get',
755+
method: 'GET'
756+
}
757+
}]
758+
});
759+
760+
new collectionRunner().run(collection,
761+
{
762+
script: {
763+
requestResolver (_requestId, callback) {
764+
callback(null, {
765+
item: {
766+
id: 'nested-request-id',
767+
event: [
768+
{
769+
listen: 'prerequest',
770+
script: {
771+
exec: `
772+
pm.test('[l1-failure-test] this test should have failed', function () {
773+
pm.expect(true).to.equal(false);
774+
});
775+
`
776+
}
777+
}
778+
],
779+
request: {
780+
url: 'https://postman-echo.com/post',
781+
method: 'POST'
782+
}
783+
}
784+
});
785+
}
786+
}
787+
},
788+
function (_err, run) {
789+
let assertionCount = 0,
790+
expectedOrder = [false, true, false],
791+
actualOrder = []; // Expected order of assertion results
792+
793+
run.start({
794+
assertion (_cursor, assertions) {
795+
assertions.forEach((assertion) => {
796+
assertionCount++;
797+
actualOrder.push(assertion.passed);
798+
});
799+
},
800+
done (err) {
801+
expect(assertionCount).to.eql(3); // All 3 assertions should have run
802+
expect(actualOrder).to.deep.eql(expectedOrder);
803+
done(err);
804+
}
805+
});
806+
});
807+
});
729808
});

0 commit comments

Comments
 (0)