55# Shows breakdown by test type (unit vs integration)
66# Usage: ./generate-test-summary-jest.sh <unit-json> <integration-json>
77
8+ # Guard: skip if GITHUB_STEP_SUMMARY is not set
9+ if [ -z " $GITHUB_STEP_SUMMARY " ]; then
10+ echo " Warning: GITHUB_STEP_SUMMARY not set, skipping summary generation"
11+ exit 0
12+ fi
13+
814UNIT_JSON=" ${1:- } "
915INTEGRATION_JSON=" ${2:- } "
1016
11- echo " ## Test Results" >> $GITHUB_STEP_SUMMARY
12- echo " " >> $GITHUB_STEP_SUMMARY
17+ echo " ## Test Results" >> " $GITHUB_STEP_SUMMARY "
18+ echo " " >> " $GITHUB_STEP_SUMMARY "
1319
1420# Function to parse Jest JSON file
1521parse_json () {
@@ -55,37 +61,37 @@ total_failed=$((unit_failed + int_failed))
5561total_skipped=$(( unit_skipped + int_skipped))
5662
5763# Display detailed breakdown
58- echo " ### Summary by Test Type" >> $GITHUB_STEP_SUMMARY
59- echo " " >> $GITHUB_STEP_SUMMARY
60- echo " | Test Type | Passed | Failed | Skipped | Total |" >> $GITHUB_STEP_SUMMARY
61- echo " |-----------|--------|--------|---------|-------|" >> $GITHUB_STEP_SUMMARY
64+ echo " ### Summary by Test Type" >> " $GITHUB_STEP_SUMMARY "
65+ echo " " >> " $GITHUB_STEP_SUMMARY "
66+ echo " | Test Type | Passed | Failed | Skipped | Total |" >> " $GITHUB_STEP_SUMMARY "
67+ echo " |-----------|--------|--------|---------|-------|" >> " $GITHUB_STEP_SUMMARY "
6268
6369if [ -f " $UNIT_JSON " ]; then
64- echo " | 🔧 Unit Tests | $unit_passed | $unit_failed | $unit_skipped | $unit_tests |" >> $GITHUB_STEP_SUMMARY
70+ echo " | 🔧 Unit Tests | $unit_passed | $unit_failed | $unit_skipped | $unit_tests |" >> " $GITHUB_STEP_SUMMARY "
6571fi
6672
6773if [ -f " $INTEGRATION_JSON " ]; then
68- echo " | 🔗 Integration Tests | $int_passed | $int_failed | $int_skipped | $int_tests |" >> $GITHUB_STEP_SUMMARY
74+ echo " | 🔗 Integration Tests | $int_passed | $int_failed | $int_skipped | $int_tests |" >> " $GITHUB_STEP_SUMMARY "
6975fi
7076
71- echo " | **Total** | **$total_passed ** | **$total_failed ** | **$total_skipped ** | **$total_tests ** |" >> $GITHUB_STEP_SUMMARY
72- echo " " >> $GITHUB_STEP_SUMMARY
77+ echo " | **Total** | **$total_passed ** | **$total_failed ** | **$total_skipped ** | **$total_tests ** |" >> " $GITHUB_STEP_SUMMARY "
78+ echo " " >> " $GITHUB_STEP_SUMMARY "
7379
7480# Overall status
75- echo " ### Overall Status" >> $GITHUB_STEP_SUMMARY
76- echo " " >> $GITHUB_STEP_SUMMARY
77- echo " | Status | Count |" >> $GITHUB_STEP_SUMMARY
78- echo " |--------|-------|" >> $GITHUB_STEP_SUMMARY
79- echo " | ✅ Passed | $total_passed |" >> $GITHUB_STEP_SUMMARY
80- echo " | ❌ Failed | $total_failed |" >> $GITHUB_STEP_SUMMARY
81- echo " | ⏭️ Skipped | $total_skipped |" >> $GITHUB_STEP_SUMMARY
82- echo " | **Total** | **$total_tests ** |" >> $GITHUB_STEP_SUMMARY
83- echo " " >> $GITHUB_STEP_SUMMARY
81+ echo " ### Overall Status" >> " $GITHUB_STEP_SUMMARY "
82+ echo " " >> " $GITHUB_STEP_SUMMARY "
83+ echo " | Status | Count |" >> " $GITHUB_STEP_SUMMARY "
84+ echo " |--------|-------|" >> " $GITHUB_STEP_SUMMARY "
85+ echo " | ✅ Passed | $total_passed |" >> " $GITHUB_STEP_SUMMARY "
86+ echo " | ❌ Failed | $total_failed |" >> " $GITHUB_STEP_SUMMARY "
87+ echo " | ⏭️ Skipped | $total_skipped |" >> " $GITHUB_STEP_SUMMARY "
88+ echo " | **Total** | **$total_tests ** |" >> " $GITHUB_STEP_SUMMARY "
89+ echo " " >> " $GITHUB_STEP_SUMMARY "
8490
8591# List failed tests if any
8692if [ $total_failed -gt 0 ]; then
87- echo " ### ❌ Failed Tests" >> $GITHUB_STEP_SUMMARY
88- echo " " >> $GITHUB_STEP_SUMMARY
93+ echo " ### ❌ Failed Tests" >> " $GITHUB_STEP_SUMMARY "
94+ echo " " >> " $GITHUB_STEP_SUMMARY "
8995
9096 failed_tests_file=$( mktemp)
9197
@@ -107,16 +113,16 @@ if [ $total_failed -gt 0 ]; then
107113
108114 if [ -s " $failed_tests_file " ]; then
109115 while IFS= read -r test ; do
110- echo " - \` $test \` " >> $GITHUB_STEP_SUMMARY
116+ echo " - \` $test \` " >> " $GITHUB_STEP_SUMMARY "
111117 done < " $failed_tests_file "
112118 else
113- echo " _Unable to parse individual test names_" >> $GITHUB_STEP_SUMMARY
119+ echo " _Unable to parse individual test names_" >> " $GITHUB_STEP_SUMMARY "
114120 fi
115121
116- echo " " >> $GITHUB_STEP_SUMMARY
117- echo " ❌ **Tests failed!**" >> $GITHUB_STEP_SUMMARY
122+ echo " " >> " $GITHUB_STEP_SUMMARY "
123+ echo " ❌ **Tests failed!**" >> " $GITHUB_STEP_SUMMARY "
118124 rm -f " $failed_tests_file "
119125 exit 1
120126else
121- echo " ✅ **All tests passed!**" >> $GITHUB_STEP_SUMMARY
127+ echo " ✅ **All tests passed!**" >> " $GITHUB_STEP_SUMMARY "
122128fi
0 commit comments