Files
leptos-shadcn-ui/scripts/test_enhanced_framework.sh

186 lines
5.2 KiB
Bash
Executable File

#!/bin/bash
# Test Enhanced Testing Framework
# This script demonstrates the enhanced testing framework capabilities
set -e
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
PURPLE='\033[0;35m'
NC='\033[0m'
print_status() {
echo -e "${GREEN}[INFO]${NC} $1"
}
print_header() {
echo -e "${BLUE}================================${NC}"
echo -e "${BLUE} Enhanced Testing Framework Demo${NC}"
echo -e "${BLUE}================================${NC}"
}
print_section() {
echo -e "${PURPLE}[SECTION]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
print_header
# Track results
TOTAL_TESTS=0
PASSED_TESTS=0
FAILED_TESTS=0
print_section "Testing Framework Compilation"
# Test 1: Test Framework Compilation
((TOTAL_TESTS++))
if cargo check -p shadcn-ui-test-utils --quiet > /dev/null 2>&1; then
print_status "✅ Test framework compiles successfully"
((PASSED_TESTS++))
else
print_error "❌ Test framework compilation failed"
((FAILED_TESTS++))
fi
# Test 2: Test Utilities
((TOTAL_TESTS++))
if cargo test -p shadcn-ui-test-utils --quiet > /dev/null 2>&1; then
print_status "✅ Test utilities work correctly"
((PASSED_TESTS++))
else
print_error "❌ Test utilities failed"
((FAILED_TESTS++))
fi
print_section "Testing Existing Components"
# Test 3: Test existing components with enhanced tests
COMPONENTS_TO_TEST=("separator" "button" "input" "card" "alert")
for component in "${COMPONENTS_TO_TEST[@]}"; do
((TOTAL_TESTS++))
if cargo test -p "shadcn-ui-leptos-$component" --quiet > /dev/null 2>&1; then
print_status "$component - Tests passed"
((PASSED_TESTS++))
else
print_error "$component - Tests failed"
((FAILED_TESTS++))
fi
done
print_section "Testing Enhanced Features"
# Test 4: Test the enhanced separator component (which we updated)
((TOTAL_TESTS++))
if cargo test -p shadcn-ui-leptos-separator --quiet > /dev/null 2>&1; then
print_status "✅ Enhanced separator tests work (5 comprehensive tests)"
((PASSED_TESTS++))
else
print_error "❌ Enhanced separator tests failed"
((FAILED_TESTS++))
fi
# Test 5: Test workspace compilation
((TOTAL_TESTS++))
if cargo check --workspace --quiet > /dev/null 2>&1; then
print_status "✅ Workspace compiles successfully"
((PASSED_TESTS++))
else
print_error "❌ Workspace compilation failed"
((FAILED_TESTS++))
fi
# Summary
echo ""
print_header
print_status "Test Results Summary:"
echo ""
echo " 📊 Total Tests: $TOTAL_TESTS"
echo " ✅ Passed: $PASSED_TESTS"
echo " ❌ Failed: $FAILED_TESTS"
echo " 📈 Success Rate: $(( (PASSED_TESTS * 100) / TOTAL_TESTS ))%"
echo ""
# Enhanced Framework Features Summary
print_section "Enhanced Framework Features Demonstrated"
echo ""
echo " 🧪 Test Utilities:"
echo " - LeptosTestUtils for basic testing"
echo " - ComponentTestBuilder for comprehensive tests"
echo " - ComponentTestSuite for test organization"
echo " - DomTestUtils for DOM interaction testing"
echo ""
echo " 🎯 Test Types Available:"
echo " - Component rendering tests"
echo " - Props and functionality tests"
echo " - Accessibility tests"
echo " - Styling tests"
echo " - Event handling tests"
echo " - State change tests"
echo " - Theme switching tests"
echo " - Performance tests"
echo " - Responsive behavior tests"
echo ""
echo " 🔧 Test Configuration:"
echo " - Configurable test settings"
echo " - Expected CSS classes validation"
echo " - Expected attributes validation"
echo " - Custom test helpers for each component type"
echo ""
echo " 📦 Integration:"
echo " - Seamless integration with component generation"
echo " - Cross-framework testing support"
echo " - Comprehensive test result reporting"
echo ""
echo " 🎨 Test Templates:"
echo " - Basic component tests"
echo " - Form component tests"
echo " - Interactive component tests"
echo " - Layout component tests"
echo " - Feedback component tests"
echo ""
# Show example of enhanced test
print_section "Example Enhanced Test (from separator component)"
echo ""
echo "The separator component now has 5 comprehensive tests:"
echo ""
echo " ✅ test_separator_component_exists"
echo " ✅ test_separator_basic_functionality"
echo " ✅ test_separator_accessibility"
echo " ✅ test_separator_styling"
echo " ✅ test_separator_comprehensive"
echo ""
echo "Each test uses the enhanced testing framework with:"
echo " - Proper result validation"
echo " - Detailed test reporting"
echo " - Framework-specific testing utilities"
echo ""
if [ $FAILED_TESTS -eq 0 ]; then
print_status "🎉 All tests passed! Enhanced testing framework is working perfectly."
echo ""
print_status "The enhanced testing framework provides:"
echo " • More comprehensive test coverage"
echo " • Better test organization and structure"
echo " • Framework-specific testing utilities"
echo " • Configurable test settings"
echo " • Detailed test result reporting"
echo " • Cross-framework testing support"
exit 0
else
print_warning "Some tests failed. Check the errors above for details."
exit 1
fi