diff --git a/packages/bruno-app/src/components/RunnerResults/index.jsx b/packages/bruno-app/src/components/RunnerResults/index.jsx index cfe3c0f1a..cbf099e5b 100644 --- a/packages/bruno-app/src/components/RunnerResults/index.jsx +++ b/packages/bruno-app/src/components/RunnerResults/index.jsx @@ -16,6 +16,28 @@ const getDisplayName = (fullPath, pathname, name = '') => { return path.join(dir, name); }; +const getTestStatus = (results) => { + if (!results || !results.length) return 'pass'; + const failed = results.filter((result) => result.status === 'fail'); + return failed.length ? 'fail' : 'pass'; +}; + +const allTestsPassed = (item) => { + return item.status !== 'error' && + item.testStatus === 'pass' && + item.assertionStatus === 'pass' && + item.preRequestTestStatus === 'pass' && + item.postResponseTestStatus === 'pass'; +}; + +const anyTestFailed = (item) => { + return item.status === 'error' || + item.testStatus === 'fail' || + item.assertionStatus === 'fail' || + item.preRequestTestStatus === 'fail' || + item.postResponseTestStatus === 'fail'; +}; + export default function RunnerResults({ collection }) { const dispatch = useDispatch(); const [selectedItem, setSelectedItem] = useState(null); @@ -56,19 +78,10 @@ export default function RunnerResults({ collection }) { displayName: getDisplayName(collection.pathname, info.pathname, info.name) }; if (newItem.status !== 'error' && newItem.status !== 'skipped') { - if (newItem.testResults) { - const failed = newItem.testResults.filter((result) => result.status === 'fail'); - newItem.testStatus = failed.length ? 'fail' : 'pass'; - } else { - newItem.testStatus = 'pass'; - } - - if (newItem.assertionResults) { - const failed = newItem.assertionResults.filter((result) => result.status === 'fail'); - newItem.assertionStatus = failed.length ? 'fail' : 'pass'; - } else { - newItem.assertionStatus = 'pass'; - } + newItem.testStatus = getTestStatus(newItem.testResults); + newItem.assertionStatus = getTestStatus(newItem.assertionResults); + newItem.preRequestTestStatus = getTestStatus(newItem.preRequestTestResults); + newItem.postResponseTestStatus = getTestStatus(newItem.postResponseTestResults); } return newItem; }) @@ -95,12 +108,8 @@ export default function RunnerResults({ collection }) { }; const totalRequestsInCollection = getTotalRequestCountInCollection(collectionCopy); - const passedRequests = items.filter((item) => { - return item.status !== 'error' && item.testStatus === 'pass' && item.assertionStatus === 'pass'; - }); - const failedRequests = items.filter((item) => { - return (item.status !== 'error' && item.testStatus === 'fail') || item.assertionStatus === 'fail'; - }); + const passedRequests = items.filter(allTestsPassed); + const failedRequests = items.filter(anyTestFailed); const skippedRequests = items.filter((item) => { return item.status === 'skipped'; @@ -176,18 +185,18 @@ export default function RunnerResults({ collection }) {
- {item.testStatus === 'pass' && item.assertionStatus === 'pass' ? + {allTestsPassed(item) ? : null} {item.status === 'skipped' ? :null} - {item.status === 'error' || item.testStatus === 'fail' || item.assertionStatus === 'fail' ? + {anyTestFailed(item) ? :null} {item.displayName} @@ -208,6 +217,46 @@ export default function RunnerResults({ collection }) { {item.status == 'error' ?
{item.error}
: null}