49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
# QA: Authentication — Claude Agent SDK (Python)
|
|
|
|
## Prerequisites
|
|
|
|
- Demo is deployed and accessible
|
|
- Agent backend is healthy (check /api/health)
|
|
- `ANTHROPIC_API_KEY` is set on the deployment
|
|
|
|
## Test Steps
|
|
|
|
### 1. Basic Functionality (happy path — start signed in)
|
|
|
|
- [ ] Navigate to `/demos/auth`
|
|
- [ ] Verify the auth banner renders with
|
|
`data-authenticated="true"`
|
|
- [ ] Verify the status reads "✓ Signed in as demo user"
|
|
- [ ] Verify the "Sign out" button is visible
|
|
- [ ] Send "Hello" and verify Claude responds
|
|
|
|
### 2. Sign-out path
|
|
|
|
- [ ] Click "Sign out"
|
|
- [ ] Verify the banner flips to amber with
|
|
`data-authenticated="false"`
|
|
- [ ] Verify the button now reads "Sign in"
|
|
- [ ] Attempt to send a message
|
|
- [ ] Verify the error banner (`data-testid="auth-demo-error"`)
|
|
renders with "401 Unauthorized" text
|
|
- [ ] Verify no white-screen and no uncaught React errors (the
|
|
ChatErrorBoundary catches any render-time crash from chat
|
|
internals in the unauth state and renders
|
|
`data-testid="auth-demo-chat-boundary"`)
|
|
|
|
### 3. Sign-in recovery
|
|
|
|
- [ ] Click "Sign in"
|
|
- [ ] Verify the banner flips back to green
|
|
- [ ] Verify the error banner clears
|
|
- [ ] Send a message and verify Claude replies again
|
|
|
|
### 4. Error Handling
|
|
|
|
- [ ] No console errors during normal usage.
|
|
|
|
## Expected Results
|
|
|
|
- Runtime rejects un-bearer'd requests with HTTP 401.
|
|
- Page never white-screens, even during auth transitions.
|