xp_nix/xp_dashboard/test/integration/run_dashboard_test.sh

93 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# Dashboard WebSocket Integration Test Runner
# Usage: ./run_dashboard_test.sh [--db path/to/database.db]
set -e
# Default values
DB_PATH=""
FLUTTER_TEST_ARGS=""
# Parse command line arguments
while [[ $# -gt 0 ]]; do
case $1 in
--db)
DB_PATH="$2"
FLUTTER_TEST_ARGS="--db $2"
shift 2
;;
-h|--help)
echo "Usage: $0 [--db path/to/database.db]"
echo ""
echo "Options:"
echo " --db PATH Use custom database file instead of default database"
echo " -h, --help Show this help message"
echo ""
echo "Examples:"
echo " $0 # Run with default database"
echo " $0 --db test_data.db # Run with custom database file"
echo " $0 --db ../xp_server/test/high_achiever.db # Run with golden test database"
echo ""
echo "Golden test databases (create with xp_server/test/create_golden_db.dart):"
echo " high_achiever.db - User with many achievements and high level"
echo " new_user.db - Fresh user with minimal data"
echo " level_up_ready.db - User close to leveling up"
echo " achievement_rich.db - User with many recent achievements"
echo " focus_master.db - User with many focus sessions"
exit 0
;;
*)
echo "Unknown option: $1"
echo "Use --help for usage information"
exit 1
;;
esac
done
# Change to dashboard directory
cd "$(dirname "$0")/../.."
echo "🚀 Running Dashboard WebSocket Integration Tests"
echo "================================================"
if [[ -n "$DB_PATH" ]]; then
echo "🗄️ Using custom database: $DB_PATH"
# Check if database file exists
if [[ ! -f "$DB_PATH" ]]; then
echo "❌ Error: Database file '$DB_PATH' not found"
echo ""
echo "💡 To create golden test databases:"
echo " cd ../xp_server/test"
echo " dart create_golden_db.dart high_achiever high_achiever.db"
echo " dart create_golden_db.dart new_user new_user.db"
echo " # etc..."
exit 1
fi
else
echo "🗄️ Using server's default database"
fi
echo ""
# Set environment variable for test arguments
export FLUTTER_TEST_ARGS="$FLUTTER_TEST_ARGS"
# Run the integration test
echo "🧪 Executing tests..."
flutter test test/integration/dashboard_websocket_integration_test.dart --verbose
echo ""
echo "✅ Tests completed successfully!"
if [[ -n "$DB_PATH" ]]; then
echo "📊 Custom database '$DB_PATH' was used for testing"
fi
echo ""
echo "💡 Tips:"
echo " - Create golden test databases with: cd ../xp_server/test && dart create_golden_db.dart <scenario>"
echo " - Available scenarios: high_achiever, new_user, level_up_ready, achievement_rich, focus_master"
echo " - Test with different scenarios to verify WebSocket behavior under various conditions"