Spaces:
Sleeping
Sleeping
Auth-Gated App Testing Playbook
Step 1: Create Test User & Session
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
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
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_idfield - Session
user_idmatches user'suser_id - Queries use
{"_id": 0}projection /api/auth/mereturns user data with cookie set/chatroute loads when authenticated