emo-online-api / emo /auth_testing.md
Emo Online
Deploy Emo API
dd87944
|
Raw
History Blame Contribute Delete
1.42 kB

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_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