#!/usr/bin/env python3 """ Test script to reset onboarding state and test the onboarding flow. """ import sys import os import sqlite3 # Add the backend directory to Python path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend')) def reset_database(): """Reset the onboarding database""" db_path = "backend/onboarding.db" if os.path.exists(db_path): os.remove(db_path) print("โœ… Database file removed") else: print("โ„น๏ธ No database file found") def check_onboarding_status(): """Check the current onboarding status""" import requests try: response = requests.get("http://localhost:8000/api/check-onboarding") if response.status_code == 200: data = response.json() print(f"๐Ÿ“Š Onboarding Status: {data}") return data else: print(f"โŒ Error: {response.status_code}") return None except Exception as e: print(f"โŒ Error checking onboarding status: {e}") return None def test_onboarding_flow(): """Test the complete onboarding flow""" print("\n๐Ÿงช Testing Onboarding Flow...") # Step 1: Check initial status print("\n1๏ธโƒฃ Checking initial onboarding status...") status = check_onboarding_status() if status and status.get('onboarding_required'): print("โœ… Correctly shows onboarding required for first-time user") else: print("โŒ Incorrectly shows onboarding complete") # Step 2: Start onboarding print("\n2๏ธโƒฃ Starting onboarding session...") try: import requests response = requests.post("http://localhost:8000/api/onboarding/start") if response.status_code == 200: print("โœ… Onboarding session started") else: print(f"โŒ Error starting onboarding: {response.status_code}") except Exception as e: print(f"โŒ Error: {e}") # Step 3: Check status again print("\n3๏ธโƒฃ Checking status after starting onboarding...") status = check_onboarding_status() if status and status.get('onboarding_required'): print("โœ… Still shows onboarding required (correct)") else: print("โŒ Incorrectly shows onboarding complete") if __name__ == "__main__": print("๐Ÿ”„ Resetting onboarding state...") reset_database() print("\nโณ Waiting for backend to restart...") import time time.sleep(3) test_onboarding_flow() print("\n๐ŸŽฏ Test complete! Check your frontend at http://localhost:3000")