mirror of
https://github.com/readur/readur.git
synced 2025-12-16 20:04:32 -06:00
155 lines
4.7 KiB
Bash
Executable File
155 lines
4.7 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Script to view latest test results
|
||
|
||
TEST_RESULTS_DIR="test-results"
|
||
|
||
# Colors for output
|
||
GREEN='\033[0;32m'
|
||
BLUE='\033[0;34m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
print_header() {
|
||
echo -e "${BLUE}=== $1 ===${NC}"
|
||
}
|
||
|
||
print_success() {
|
||
echo -e "${GREEN}✓${NC} $1"
|
||
}
|
||
|
||
print_info() {
|
||
echo -e "${YELLOW}ℹ${NC} $1"
|
||
}
|
||
|
||
# Check if test results directory exists
|
||
if [ ! -d "$TEST_RESULTS_DIR" ]; then
|
||
echo "No test results found. Run 'make test' first."
|
||
exit 1
|
||
fi
|
||
|
||
# Parse command line arguments
|
||
ACTION="${1:-summary}"
|
||
|
||
case $ACTION in
|
||
summary|s)
|
||
print_header "Latest Test Summary"
|
||
# Find the most recent summary file
|
||
LATEST_SUMMARY=$(ls -t "$TEST_RESULTS_DIR"/reports/*_summary.txt 2>/dev/null | head -1)
|
||
if [ -f "$LATEST_SUMMARY" ]; then
|
||
cat "$LATEST_SUMMARY"
|
||
else
|
||
echo "No test summary found."
|
||
fi
|
||
;;
|
||
|
||
html|h)
|
||
print_header "Opening HTML Report"
|
||
# Find the most recent HTML report
|
||
LATEST_HTML=$(ls -t "$TEST_RESULTS_DIR"/reports/*_test_report.html 2>/dev/null | head -1)
|
||
if [ -f "$LATEST_HTML" ]; then
|
||
print_success "Opening $LATEST_HTML"
|
||
# Try to open with default browser
|
||
if command -v xdg-open >/dev/null 2>&1; then
|
||
xdg-open "$LATEST_HTML"
|
||
elif command -v open >/dev/null 2>&1; then
|
||
open "$LATEST_HTML"
|
||
else
|
||
print_info "Manual open required: $LATEST_HTML"
|
||
fi
|
||
else
|
||
echo "No HTML report found."
|
||
fi
|
||
;;
|
||
|
||
logs|l)
|
||
print_header "Available Test Logs"
|
||
if [ -d "$TEST_RESULTS_DIR" ]; then
|
||
echo "Unit Tests:"
|
||
ls -la "$TEST_RESULTS_DIR"/unit/ 2>/dev/null || echo " No unit test logs"
|
||
echo ""
|
||
echo "Integration Tests:"
|
||
ls -la "$TEST_RESULTS_DIR"/integration/ 2>/dev/null || echo " No integration test logs"
|
||
echo ""
|
||
echo "Frontend Tests:"
|
||
ls -la "$TEST_RESULTS_DIR"/frontend/ 2>/dev/null || echo " No frontend test logs"
|
||
echo ""
|
||
echo "Reports:"
|
||
ls -la "$TEST_RESULTS_DIR"/reports/ 2>/dev/null || echo " No reports"
|
||
fi
|
||
;;
|
||
|
||
unit|u)
|
||
print_header "Latest Unit Test Results"
|
||
LATEST_UNIT=$(ls -t "$TEST_RESULTS_DIR"/unit/*.log 2>/dev/null | head -1)
|
||
if [ -f "$LATEST_UNIT" ]; then
|
||
print_success "From: $LATEST_UNIT"
|
||
echo ""
|
||
cat "$LATEST_UNIT"
|
||
else
|
||
echo "No unit test results found."
|
||
fi
|
||
;;
|
||
|
||
integration|i)
|
||
print_header "Latest Integration Test Results"
|
||
LATEST_INTEGRATION=$(ls -t "$TEST_RESULTS_DIR"/integration/*.log 2>/dev/null | head -1)
|
||
if [ -f "$LATEST_INTEGRATION" ]; then
|
||
print_success "From: $LATEST_INTEGRATION"
|
||
echo ""
|
||
cat "$LATEST_INTEGRATION"
|
||
else
|
||
echo "No integration test results found."
|
||
fi
|
||
;;
|
||
|
||
frontend|f)
|
||
print_header "Latest Frontend Test Results"
|
||
LATEST_FRONTEND=$(ls -t "$TEST_RESULTS_DIR"/frontend/*.log 2>/dev/null | head -1)
|
||
if [ -f "$LATEST_FRONTEND" ]; then
|
||
print_success "From: $LATEST_FRONTEND"
|
||
echo ""
|
||
cat "$LATEST_FRONTEND"
|
||
else
|
||
echo "No frontend test results found."
|
||
fi
|
||
;;
|
||
|
||
clean|c)
|
||
print_header "Cleaning Test Results"
|
||
read -p "Are you sure you want to delete all test results? (y/N): " -n 1 -r
|
||
echo
|
||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||
rm -rf "$TEST_RESULTS_DIR"/*
|
||
print_success "Test results cleaned"
|
||
else
|
||
echo "Cancelled"
|
||
fi
|
||
;;
|
||
|
||
help|--help|-h)
|
||
print_header "Test Results Viewer"
|
||
echo "Usage: $0 [command]"
|
||
echo ""
|
||
echo "Commands:"
|
||
echo " summary, s Show latest test summary (default)"
|
||
echo " html, h Open latest HTML report in browser"
|
||
echo " logs, l List all available test logs"
|
||
echo " unit, u Show latest unit test results"
|
||
echo " integration, i Show latest integration test results"
|
||
echo " frontend, f Show latest frontend test results"
|
||
echo " clean, c Clean all test results"
|
||
echo " help, -h Show this help"
|
||
echo ""
|
||
echo "Examples:"
|
||
echo " $0 # Show summary"
|
||
echo " $0 html # Open HTML report"
|
||
echo " $0 unit # Show unit test details"
|
||
;;
|
||
|
||
*)
|
||
echo "Unknown command: $ACTION"
|
||
echo "Run '$0 help' for available commands."
|
||
exit 1
|
||
;;
|
||
esac |