Files
ccs/tests/integration/edge-cases.sh
T
kaitranntt 5fae92ac07 feat(glmt): add streaming with real-time thinking blocks
- reorganize bin/ into auth/, glmt/, management/, utils/
- add budget calculator and locale enforcer
- enhance test coverage with unit/integration separation
2025-11-11 15:39:00 -05:00

132 lines
3.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# CCS COMPREHENSIVE TEST SUITE - Master Orchestrator
# Runs all test suites in the correct order
# Maintains backward compatibility with existing usage
set -e
# Get the directory where this script is located
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Source shared utilities
source "$SCRIPT_DIR/shared/helpers.sh"
# Print test header
print_test_header "CCS COMPREHENSIVE TEST SUITE"
echo ""
echo -e "${CYAN}This master test suite runs:${NC}"
echo -e "${GRAY} 1. Native Unix tests (traditional installation)${NC}"
echo -e "${GRAY} 2. npm package tests (Node.js framework)${NC}"
echo ""
# Track overall results
OVERALL_PASS=0
OVERALL_FAIL=0
OVERALL_TOTAL=0
# Function to run a test suite and capture results
run_test_suite() {
local suite_name="$1"
local suite_command="$2"
echo ""
print_section_header "Running $suite_name"
echo ""
# Reset counters for this suite
reset_test_counters
# Run the test suite and capture output
if bash -c "$suite_command"; then
# Suite passed
local suite_passed=$PASS_COUNT
local suite_failed=$FAIL_COUNT
local suite_total=$TOTAL_TESTS
echo -e "${GREEN}$suite_name completed successfully${NC}"
echo -e "${CYAN}Tests: $suite_passed/$suite_total passed${NC}"
# Add to overall totals
((OVERALL_PASS += suite_passed))
((OVERALL_FAIL += suite_failed))
((OVERALL_TOTAL += suite_total))
return 0
else
# Suite failed
local suite_passed=$PASS_COUNT
local suite_failed=$FAIL_COUNT
local suite_total=$TOTAL_TESTS
echo -e "${RED}$suite_name failed${NC}"
echo -e "${YELLOW}Tests: $suite_passed/$suite_total passed, $suite_failed failed${NC}"
# Add to overall totals
((OVERALL_PASS += suite_passed))
((OVERALL_FAIL += suite_failed))
((OVERALL_TOTAL += suite_total))
return 1
fi
}
# Test Suite 1: Native Unix Tests
if [[ -f "$SCRIPT_DIR/native/unix/edge-cases.sh" ]]; then
if run_test_suite "Native Unix Tests" "cd '$SCRIPT_DIR' && bash native/unix/edge-cases.sh"; then
echo -e "${GREEN}✓ Native Unix tests passed${NC}"
else
echo -e "${YELLOW}⚠ Native Unix tests had failures${NC}"
fi
else
echo -e "${YELLOW}⚠ Native Unix tests not found, skipping${NC}"
fi
# Test Suite 2: npm Package Tests
if command -v node &> /dev/null; then
if [[ -f "$SCRIPT_DIR/../package.json" ]]; then
echo ""
print_section_header "Running npm Package Tests"
echo ""
# Reset counters for npm tests
reset_test_counters
# Change to the project root directory and run npm tests
if cd "$SCRIPT_DIR/.." && npm run test:npm 2>/dev/null; then
echo -e "${GREEN}✓ npm package tests passed${NC}"
# Note: npm tests don't use our counter system, so we'll estimate
# We could parse npm test output, but for now just acknowledge success
echo -e "${CYAN}npm tests completed successfully${NC}"
else
echo -e "${YELLOW}⚠ npm package tests had failures or could not run${NC}"
((OVERALL_FAIL++)) # Count as at least one failure
fi
# Return to tests directory
cd "$SCRIPT_DIR"
else
echo -e "${YELLOW}⚠ package.json not found, skipping npm tests${NC}"
fi
else
echo -e "${YELLOW}⚠ Node.js not found, skipping npm tests${NC}"
echo -e "${GRAY} Install Node.js to run npm package tests${NC}"
fi
# Final Summary
echo ""
print_test_header "FINAL TEST RESULTS"
# Update final counters with actual totals
TOTAL_TESTS=$OVERALL_TOTAL
PASS_COUNT=$OVERALL_PASS
FAIL_COUNT=$OVERALL_FAIL
if [[ $TOTAL_TESTS -gt 0 ]]; then
print_test_summary
else
echo -e "${YELLOW}No tests were executed${NC}"
fi
print_final_result