@@ -39,6 +44,31 @@ const TestResults = ({ results }) => {
))}
+
+
+ Assertions ({assertionResults.length}/{assertionResults.length}), Passed: {passedAssertions.length}, Failed: {failedAssertions.length}
+
+
+ {assertionResults.map((result) => (
+ -
+ {result.status === 'pass' ? (
+
+ ✔ {result.lhsExpr}: {result.rhsExpr}
+
+ ) : (
+ <>
+
+ ✘ {result.lhsExpr}: {result.rhsExpr}
+
+
+
+ {result.error}
+
+ >
+ )}
+
+ ))}
+
);
};
diff --git a/packages/bruno-app/src/components/ResponsePane/TestResultsLabel/index.js b/packages/bruno-app/src/components/ResponsePane/TestResultsLabel/index.js
index 651819928..6cf9a57b9 100644
--- a/packages/bruno-app/src/components/ResponsePane/TestResultsLabel/index.js
+++ b/packages/bruno-app/src/components/ResponsePane/TestResultsLabel/index.js
@@ -1,23 +1,31 @@
import React from 'react';
-const TestResultsLabel = ({ results }) => {
- if(!results || !results.length) {
+const TestResultsLabel = ({ results, assertionResults }) => {
+ results = results || [];
+ assertionResults = assertionResults || [];
+ if(!results.length && !assertionResults.length) {
return 'Tests';
}
const numberOfTests = results.length;
const numberOfFailedTests = results.filter(result => result.status === 'fail').length;
+ const numberOfAssertions = assertionResults.length;
+ const numberOfFailedAssertions = assertionResults.filter(result => result.status === 'fail').length;
+
+ const totalNumberOfTests = numberOfTests + numberOfAssertions;
+ const totalNumberOfFailedTests = numberOfFailedTests + numberOfFailedAssertions;
+
return (
Tests
- {numberOfFailedTests ? (
+ {totalNumberOfFailedTests ? (
- {numberOfFailedTests}
+ {totalNumberOfFailedTests}
) : (
- {numberOfTests}
+ {totalNumberOfTests}
)}
diff --git a/packages/bruno-app/src/components/ResponsePane/index.js b/packages/bruno-app/src/components/ResponsePane/index.js
index 7a62b3b6f..1648c7080 100644
--- a/packages/bruno-app/src/components/ResponsePane/index.js
+++ b/packages/bruno-app/src/components/ResponsePane/index.js
@@ -50,7 +50,7 @@ const ResponsePane = ({ rightPaneWidth, item, collection }) => {
return
;
}
case 'tests': {
- return ;
+ return ;
}
default: {
@@ -103,7 +103,7 @@ const ResponsePane = ({ rightPaneWidth, item, collection }) => {
Timeline
diff --git a/packages/bruno-app/src/components/RunnerResults/index.js b/packages/bruno-app/src/components/RunnerResults/index.js
index c174609ce..68d686af0 100644
--- a/packages/bruno-app/src/components/RunnerResults/index.js
+++ b/packages/bruno-app/src/components/RunnerResults/index.js
@@ -50,6 +50,14 @@ export default function RunnerResults({collection}) {
} else {
item.testStatus = 'pass';
}
+
+ if(item.assertionResults) {
+ const failed = item.assertionResults.filter((result) => result.status === 'fail');
+
+ item.assertionStatus = failed.length ? 'fail' : 'pass';
+ } else {
+ item.assertionStatus = 'pass';
+ }
}
});
@@ -68,8 +76,12 @@ export default function RunnerResults({collection}) {
};
const totalRequestsInCollection = getTotalRequestCountInCollection(collectionCopy);
- const passedRequests = items.filter((item) => item.status !== "error" && item.testStatus === 'pass');
- const failedRequests = items.filter((item) => item.status !== "error" && item.testStatus === 'fail');
+ 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';
+ });
if(!items || !items.length) {
return (
@@ -139,7 +151,7 @@ export default function RunnerResults({collection}) {
{item.testResults ? item.testResults.map((result) => (
- -
+
-
{result.status === 'pass' ? (
@@ -158,6 +170,26 @@ export default function RunnerResults({collection}) {
)}
)): null}
+ {item.assertionResults ? item.assertionResults.map((result) => (
+ -
+ {result.status === 'pass' ? (
+
+
+ {result.lhsExpr}: {result.rhsExpr}
+
+ ) : (
+ <>
+
+
+ {result.lhsExpr}: {result.rhsExpr}
+
+
+ {result.error}
+
+ >
+ )}
+
+ )): null}