Spaces:
Sleeping
Sleeping
File size: 1,419 Bytes
dd87944 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # 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
|