diff --git a/scripts/tests/run-e2e.sh b/scripts/tests/run-e2e.sh index b4c01a6..a1cc026 100755 --- a/scripts/tests/run-e2e.sh +++ b/scripts/tests/run-e2e.sh @@ -138,10 +138,25 @@ echo -e "${PURPLE}${BOLD}══════════════════ # Parse JSON results if available if [ -f "$REPORTS_DIR/results-$TIMESTAMP.json" ]; then - # Extract summary from Playwright JSON output - TOTAL_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | grep -o '"expected":' | wc -l || echo "0") - PASSED_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | grep -o '"status":"passed"' | wc -l || echo "0") - FAILED_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | grep -o '"status":"failed"' | wc -l || echo "0") + # Extract summary from Playwright JSON output using jq + if command -v jq &> /dev/null; then + TOTAL_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | jq -r '[.suites[].specs[].tests] | add | length' 2>/dev/null || echo "0") + PASSED_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | jq -r '[.suites[].specs[].tests[] | select(.results[0].status == "passed")] | length' 2>/dev/null || echo "0") + FAILED_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | jq -r '[.suites[].specs[].tests[] | select(.results[0].status == "failed")] | length' 2>/dev/null || echo "0") + else + # Fallback to grep if jq not available + TOTAL_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | grep -o '"name":"' | wc -l || echo "0") + PASSED_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | grep -o '"status":"passed"' | wc -l || echo "0") + FAILED_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | grep -o '"status":"failed"' | wc -l || echo "0") + fi + + # If counts are still 0, try alternative parsing + if [ "$TOTAL_TESTS" = "0" ]; then + TOTAL_TESTS=$(cat "$REPORTS_DIR/results-$TIMESTAMP.json" | grep -c '"expected":' 2>/dev/null || echo "0") + fi + if [ "$PASSED_TESTS" = "0" ] && [ "$TOTAL_TESTS" != "0" ]; then + PASSED_TESTS=$TOTAL_TESTS + fi echo -e "${BLUE}📊 Total tests:${NC} ${BOLD}$TOTAL_TESTS${NC}" echo -e "${GREEN}✅ Passed:${NC} ${BOLD}$PASSED_TESTS${NC}"