📝 Sort docs

This commit is contained in:
2025-12-28 22:24:22 +08:00
parent 95472df02b
commit 21108c19a9
19 changed files with 0 additions and 613 deletions

View File

@@ -0,0 +1,282 @@
# ActivityPub Testing Results Template
Use this template to track your testing progress.
## Test Environment
**Date**: ________________
**Test Configuration**:
- Solar Network URL: `http://solar.local:5000`
- Mastodon URL: `http://mastodon.local:3001`
- Database: `dyson_network`
**Solar Network User**:
- Username: `_______________`
- Publisher ID: `_______________`
**Mastodon User**:
- Username: `testuser@mastodon.local`
- Password: `TestPassword123!`
---
## Test Results
### ✅ Part 1: Infrastructure Setup
| Test | Status | Notes |
|------|--------|-------|
| Setup script ran successfully | ☐ ☑ | |
| /etc/hosts updated | ☐ ☑ | |
| Docker containers started | ☐ ☑ | |
| Mastodon web accessible | ☐ ☑ | |
| Mastodon admin account created | ☐ ☑ | |
| Database migrations applied | ☐ ☑ | |
| Solar Network started | ☐ ☑ | |
### ✅ Part 2: WebFinger & Actor Discovery
| Test | Status | Expected | Actual |
|------|--------|---------|--------|
| WebFinger for Solar Network user | ☐ ☑ | Returns subject + links | _______________ |
| Actor profile JSON is valid | ☐ ☑ | Has id, type, inbox, outbox | _______________ |
| Public key present in actor | ☐ ☑ | publicKey.publicKeyPem exists | _______________ |
| Outbox returns public posts | ☐ ☑ | OrderedCollection with items | _______________ |
| Outbox totalItems count | ☐ ☑ | Matches public posts | _______________ |
### ✅ Part 3: Follow Relationships
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Mastodon follows Solar Network user | ☐ ☑ | Relationship created in DB | _______________ |
| Accept sent to Mastodon | ☐ ☑ | Mastodon receives Accept | _______________ |
| Solar Network follows Mastodon user | ☐ ☑ | Relationship created | _______________ |
| Follow appears in Mastodon UI | ☐ ☑ | Mastodon shows "Following" | _______________ |
| Follow appears in Solar Network DB | ☐ ☑ | is_following = true | _______________ |
| Follow state is Accepted | ☐ ☑ | state = 1 (Accepted) | _______________ |
| Unfollow works correctly | ☐ ☑ | Relationship deleted/updated | _______________ |
### ✅ Part 4: Content Federation (Create)
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Post created in Solar Network | ☐ ☑ | Post in sn_posts table | _______________ |
| Activity sent to Mastodon | ☐ ☑ | Logged as successful | _______________ |
| Post appears in Mastodon timeline | ☐ ☑ | Visible in federated timeline | _______________ |
| Post content matches | ☐ ☑ | Same text/HTML | _______________ |
| Post author is correct | ☐ ☑ | Shows Solar Network user | _______________ |
| Post timestamp is correct | ☐ ☑ | Same published time | _______________ |
| Multiple posts federate | ☐ ☑ | All posts appear | _______________ |
### ✅ Part 5: Content Reception (Incoming Create)
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Create activity received | ☐ ☑ | Activity logged in DB | _______________ |
| Content stored in fediverse_contents | ☐ ☑ | Record with correct type | _______________ |
| Content not duplicated | ☐ ☑ | Only one entry per URI | _______________ |
| Actor created/retrieved | ☐ ☑ | Actor in fediverse_actors | _______________ |
| Instance created/retrieved | ☐ ☑ | Instance in fediverse_instances | _______________ |
| Content HTML preserved | ☐ ☑ | contentHtml field populated | _______________ |
### ✅ Part 6: Reaction Federation (Like)
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Like from Mastodon to Solar post | ☐ ☑ | Like activity received | _______________ |
| Reaction stored in fediverse_reactions | ☐ ☑ | Record with type = 0 (Like) | _______________ |
| Like count incremented | ☐ ☑ | like_count increased | _______________ |
| Like appears in UI | ☐ ☑ | Visible on Solar Network | _______________ |
| Like appears in Mastodon | ☐ ☑ | Visible on Mastodon | _______________ |
| Unlike works correctly | ☐ ☑ | Like removed | _______________ |
### ✅ Part 7: Reply Federation
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Reply from Mastodon to Solar post | ☐ ☑ | Create activity with inReplyTo | _______________ |
| Reply stored with parent reference | ☐ ☑ | in_reply_to field set | _______________ |
| Reply appears in Solar Network | ☐ ☑ | Visible as comment | _______________ |
| Reply shows parent context | ☐ ☑ | Links to original post | _______________ |
### ✅ Part 8: Content Deletion
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Delete from Mastodon | ☐ ☑ | Delete activity received | _______________ |
| Content soft-deleted | ☐ ☑ | deleted_at timestamp set | _______________ |
| Content no longer visible | ☐ ☑ | Hidden from timelines | _______________ |
### ✅ Part 9: HTTP Signature Verification
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Valid signature accepted | ☐ ☑ | Activity processed | _______________ |
| Invalid signature rejected | ☐ ☑ | 401 Unauthorized | _______________ |
| Missing signature rejected | ☐ ☑ | 401 Unauthorized | _______________ |
| Signature format correct | ☐ ☑ | keyId, algorithm, headers, signature | _______________ |
| Signing string correct | ☐ ☑ | Matches HTTP-Signatures draft | _______________ |
### ✅ Part 10: Error Handling
| Test | Status | Expected Result | Actual Result |
|------|--------|----------------|---------------|
| Invalid activity type rejected | ☐ ☑ | 400 Bad Request | _______________ |
| Malformed JSON rejected | ☐ ☑ | 400 Bad Request | _______________ |
| Non-existent actor rejected | ☐ ☑ | 404 Not Found | _______________ |
| Errors logged correctly | ☐ ☑ | error_message populated | _______________ |
| Activity status = Failed | ☐ ☑ | status = 3 | _______________ |
---
## Database State After Tests
### Actors Table
```sql
SELECT COUNT(*) as total_actors,
SUM(CASE WHEN is_local_actor THEN 1 ELSE 0 END) as local,
SUM(CASE WHEN NOT is_local_actor THEN 1 ELSE 0 END) as remote
FROM fediverse_relationships;
```
- Total Actors: _______________
- Local Actors: _______________
- Remote Actors: _______________
### Contents Table
```sql
SELECT COUNT(*) as total_contents,
AVG(LENGTH(content)) as avg_content_length
FROM fediverse_contents WHERE deleted_at IS NULL;
```
- Total Contents: _______________
- Avg Content Length: _______________
### Activities Table
```sql
SELECT type, status, COUNT(*)
FROM fediverse_activities
GROUP BY type, status
ORDER BY type, status;
```
- Activities by Type/Status:
- Create: Pending ___, Completed ____, Failed ___
- Follow: Pending ___, Completed ____, Failed ___
- Like: Pending ___, Completed ____, Failed ___
- Accept: Pending ___, Completed ____, Failed ___
### Relationships Table
```sql
SELECT state, COUNT(*) as count
FROM fediverse_relationships
GROUP BY state;
```
- Pending: _______________
- Accepted: _______________
- Rejected: _______________
---
## Logs Analysis
### Solar Network Errors Found:
1. _______________
2. _______________
3. _______________
### Mastodon Errors Found:
1. _______________
2. _______________
3. _______________
### Warnings Found:
1. _______________
2. _______________
3. _______________
---
## Issues & Bugs Found
| # | Severity | Description | Status |
|---|----------|-------------|--------|
| 1 | ☐ Low/Medium/High/Critical | _____________________ | ☐ Open/☐ Fixed |
| 2 | ☐ Low/Medium/High/Critical | _____________________ | ☐ Open/☐ Fixed |
| 3 | ☐ Low/Medium/High/Critical | _____________________ | ☐ Open/☐ Fixed |
| 4 | ☐ Low/Medium/High/Critical | _____________________ | ☐ Open/☐ Fixed |
---
## Performance Notes
| Metric | Value | Notes |
|--------|-------|-------|
| Average activity processing time | __________ ms | |
| Average HTTP signature verification time | __________ ms | |
| Outgoing delivery success rate | __________% | |
| Average WebFinger response time | __________ ms | |
| Database query performance | __________ | |
---
## Compatibility Notes
| Instance | Version | Works | Notes |
|----------|---------|--------|-------|
| Mastodon (self-hosted) | latest | ☐ ☑ | |
| Mastodon.social | ~4.0 | ☐ ☑ | |
| Pleroma | ~2.5 | ☐ ☑ | |
| GoToSocial | ~0.15 | ☐ ☑ | |
---
## Recommendations
### What Worked Well:
1. _____________________
2. _____________________
3. _____________________
### What Needs Improvement:
1. _____________________
2. _____________________
3. _____________________
### Features to Add:
1. _____________________
2. _____________________
3. _____________________
---
## Next Testing Phase
- [ ] Test with public Mastodon instance
- [ ] Test with Pleroma instance
- [ ] Test media attachment federation
- [ ] Test with high-volume posts
- [ ] Test concurrent activity processing
- [ ] Test with different visibility levels
- [ ] Test with long posts (>500 chars)
- [ ] Test with special characters/emojis
---
## Sign-off
**Tested By**: _____________________
**Test Date**: _____________________
**Overall Result**: ☐ Pass / ☐ Fail
**Ready for Production**: ☐ Yes / ☐ No
**Notes**: ___________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________