#!/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 " 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"