You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.0 KiB
4.0 KiB
ClaimAddRawView.vue Testing Guide
Quick Testing Setup
- Web server running at:
http://localhost:3000
- Migration completed: 2025-07-06
- Component:
src/views/ClaimAddRawView.vue
- Route:
/claim-add-raw/:id?
Test URLs (Copy/Paste into Browser)
1. Basic JSON Editor
http://localhost:3000/claim-add-raw
Expected: Raw claim JSON editor loads with empty textarea
2. Pre-filled JSON Example
http://localhost:3000/claim-add-raw?claim={"type":"example","data":"test claim"}
Expected: Editor loads with formatted JSON in textarea
3. With Optional ID Parameter
http://localhost:3000/claim-add-raw/some-test-id
Expected: Editor loads normally (ID available in route params)
4. Invalid JSON Test
Navigate to basic page and paste this invalid JSON:
{"invalid": json, "missing": quotes}
Expected: JSON parsing handled gracefully
Browser Developer Tools Validation
Console Tab
- Check for errors during page load
- Verify error logging works (test invalid operations)
- Look for properly formatted log messages
Application Tab
- Navigate to: IndexedDB → TimeSafari
- Check
logs
table for error entries if any errors occur - Verify settings are loaded correctly
Network Tab
- Monitor API calls during claim submission
- Check headers and authentication
Testing Checklist
Web Platform (Chrome) ✅/❌
- Basic page loads without errors
- JSON editor displays correctly
- Pre-filled JSON from query param works
- JSON validation works (valid/invalid)
- Settings load from database correctly
- Error handling works (network failures)
- Logging works (console + database)
- Claim submission functionality works
Functional Tests
Basic Functionality
- Page Load: Navigate to
/claim-add-raw
- UI Elements: JSON textarea and "Sign & Send" button visible
- Back Button: Navigation back button works
JSON Handling
- Valid JSON: Paste valid JSON, verify formatting
- Invalid JSON: Paste invalid JSON, check error handling
- Query Param: Test with
?claim={"test":"data"}
- Empty State: Editor handles empty/null claims
Database Operations
- Settings Load: Account settings retrieved correctly
- Error Logging: Errors logged to database logs table
- Persistence: Settings persist across page refreshes
API Integration
- Claim Submission: Submit valid claim (requires server)
- Error Handling: Network errors handled gracefully
- Authentication: Headers and DID authentication work
Error Scenarios
- Network Failure: Test offline/network errors
- Invalid Claims: Submit malformed data
- Server Errors: Handle API error responses
- Missing Settings: Handle missing account settings
Expected Database Operations
- Settings Retrieval:
this.$accountSettings()
loads activeDid and apiServer - Error Logging:
this.$logAndConsole()
writes to logs table - Persistence: Data survives page refresh
Success Criteria
- ✅ No console errors during normal operation
- ✅ JSON editor loads and functions correctly
- ✅ Claims can be formatted and edited
- ✅ Error scenarios handled gracefully
- ✅ Database operations work correctly
- ✅ Logging functions as expected
Sample Test Data
Valid Claim JSON
{
"type": "GiveAction",
"recipient": "did:ethr:0x1234567890123456789012345678901234567890",
"amount": "10",
"description": "Test claim for migration validation"
}
Invalid JSON (for error testing)
{"invalid": json, missing: "quotes", trailing,}
Navigation Testing
- Entry Points: Direct URL, navigation from other views
- Exit Points: Back button, form submission redirect
- Deep Links: URLs with parameters and query strings
Notes
- Component handles raw JSON editing for claims
- Requires valid account settings (activeDid, apiServer)
- Claims submitted via endorser server API
- Error handling includes both UI notifications and logging