# Auth-Gated App Testing Playbook ## Step 1: Create Test User & Session ```bash mongosh --eval " use('test_database'); var userId = 'test-user-' + Date.now(); var sessionToken = 'test_session_' + Date.now(); db.users.insertOne({ user_id: userId, email: 'test.user.' + Date.now() + '@example.com', name: 'Test User', picture: 'https://via.placeholder.com/150', auth_provider: 'google', created_at: new Date() }); db.user_sessions.insertOne({ user_id: userId, session_token: sessionToken, expires_at: new Date(Date.now() + 7*24*60*60*1000), created_at: new Date() }); print('Session token: ' + sessionToken); print('User ID: ' + userId); " ``` ## Step 2: Test Backend API ```bash curl -X GET "$REACT_APP_BACKEND_URL/api/auth/me" \ -H "Authorization: Bearer YOUR_SESSION_TOKEN" curl -X GET "$REACT_APP_BACKEND_URL/api/conversations" \ -H "Authorization: Bearer YOUR_SESSION_TOKEN" ``` ## Step 3: Browser Testing ```js await page.context.add_cookies([{ "name": "session_token", "value": "YOUR_SESSION_TOKEN", "domain": "your-app.com", "path": "/", "httpOnly": true, "secure": true, "sameSite": "None" }]); await page.goto("https://your-app.com/chat"); ``` ## Checklist - User document has `user_id` field - Session `user_id` matches user's `user_id` - Queries use `{"_id": 0}` projection - `/api/auth/me` returns user data with cookie set - `/chat` route loads when authenticated