Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:50:06 +08:00
commit 5e3ca965d9
68 changed files with 11257 additions and 0 deletions

230
commands/test-connection.md Normal file
View File

@@ -0,0 +1,230 @@
Test Odoo API connection and sync functionality to diagnose issues.
## What this command does:
- Validates Odoo connection credentials
- Tests API authentication
- Verifies model access and permissions
- Checks sync functionality
- Runs diagnostic tests on cache stores
- Provides detailed error reporting and solutions
## Prerequisites:
Before testing, ensure:
1.`.env` file exists and is configured
2. ✅ Current directory is an Odoo PWA project
3. ✅ Development server can be started
4. ✅ Internet connection is available
## Diagnostic Tests to Run:
### 1. Environment Configuration Check
Verify all required environment variables are set:
- `VITE_ODOO_URL` - Odoo instance URL
- `VITE_ODOO_DB` - Database name
- `ODOO_API_KEY` - API authentication key
- `ODOO_USERNAME` - User email/username
- `VITE_MODEL_NAME` - Primary model name
### 2. Network Connectivity Test
```bash
# Test if Odoo URL is reachable
curl -I [ODOO_URL]
```
Expected: HTTP 200 or 301/302 redirect
### 3. API Authentication Test
Make a test API call to verify credentials:
```javascript
POST /api/odoo
{
"action": "search",
"model": "res.partner",
"domain": [],
"fields": ["id", "name"],
"limit": 1
}
```
Expected: Returns at least one partner record
### 4. Model Access Test
Verify the configured model exists and is accessible:
```javascript
POST /api/odoo
{
"action": "search_model",
"model": "[VITE_MODEL_NAME]",
"domain": [],
"fields": ["id"],
"limit": 1
}
```
Expected: Returns records or empty array (not an error)
### 5. CRUD Operations Test
Test each operation:
- **Create**: Create a test record
- **Read**: Fetch the created record
- **Update**: Modify the record
- **Delete**: Remove the test record
### 6. Cache Functionality Test
Verify cache stores work correctly:
- localStorage read/write
- IndexedDB read/write
- Cache expiration logic
- Sync mechanism
### 7. Sync Performance Test
Measure sync performance:
- Initial load time
- Incremental sync time
- Number of records synced
- Network request count
## Steps:
1. Read and validate `.env` file
2. Parse environment variables
3. Run each diagnostic test in sequence
4. Log results with timestamps
5. Identify failing tests
6. Provide specific solutions for failures
7. Generate diagnostic report
## Output Format:
```
🧪 Odoo PWA Connection Diagnostics
================================
✅ Environment Configuration: PASSED
- ODOO_URL: https://yourcompany.odoo.com
- DATABASE: yourcompany-main
- MODEL: x_expense
✅ Network Connectivity: PASSED
- Odoo server reachable
- Response time: 234ms
✅ API Authentication: PASSED
- API key valid
- User authenticated: your.email@company.com
✅ Model Access: PASSED
- Model exists: x_expense
- Read permission: Yes
- Write permission: Yes
✅ CRUD Operations: PASSED
- Create: ✅ Record created (ID: 123)
- Read: ✅ Record fetched
- Update: ✅ Record updated
- Delete: ✅ Record deleted
✅ Cache Functionality: PASSED
- localStorage: Working
- IndexedDB: Working
- Sync interval: 3 minutes
✅ Sync Performance: PASSED
- Initial load: 1.2s (45 records)
- Incremental sync: 0.3s (2 new records)
- Network requests: 3
================================
🎉 All tests passed! Your Odoo PWA is working correctly.
```
## Example prompts to use this command:
- `/test-connection` - Run full diagnostic suite
- User: "Test my Odoo connection"
- User: "Why isn't data syncing from Odoo?"
- User: "Diagnose Odoo API issues"
## Common Issues and Solutions:
### ❌ Connection Failed
**Error**: Cannot reach Odoo URL
**Solutions**:
- Verify URL is correct (include https://)
- Check internet connection
- Test URL in browser
- Check firewall/VPN settings
### ❌ Authentication Failed
**Error**: Invalid API key or credentials
**Solutions**:
- Regenerate API key in Odoo (Settings → Users → API Keys)
- Verify username matches API key owner
- Check for typos in `.env` file
- Ensure API key has not expired
### ❌ Model Not Found
**Error**: Model doesn't exist or no access
**Solutions**:
- Verify model exists in Odoo Studio
- Check model name includes `x_` prefix
- Verify user has read/write permissions
- Check model is published (not in draft mode)
### ❌ CORS Error
**Error**: Blocked by CORS policy
**Solutions**:
- Use server-side API proxy (recommended)
- Configure CORS in Odoo (not recommended)
- Check API route is working correctly
### ❌ Sync Not Working
**Error**: Records not updating
**Solutions**:
- Check browser console for errors
- Verify sync interval is running
- Clear cache and try again
- Check Odoo server is not down
### ❌ Permission Denied
**Error**: Cannot create/update records
**Solutions**:
- Verify user has write permission on model
- Check required fields are included
- Verify field types match expectations
- Check for validation rules in Odoo
## Development Tools:
Provide user with helpful commands:
```bash
# Watch network requests
# Open browser DevTools → Network tab
# View cache contents
localStorage.getItem('[model]Cache')
# Force cache clear
localStorage.clear()
# Monitor sync in console
# Look for "Syncing..." messages
```
## After Testing:
If all tests pass:
- Confirm the application is working correctly
- Suggest running tests periodically
- Recommend monitoring in production
If tests fail:
- Provide specific error messages
- Offer step-by-step troubleshooting
- Suggest checking Odoo server logs
- Offer to help fix configuration
## Advanced Diagnostics:
For complex issues:
1. Export full diagnostic report
2. Check Odoo server logs
3. Review browser console errors
4. Analyze network traffic
5. Test with different API keys
6. Try with different models
7. Compare with working examples