A community based topic aggregation platform built on atproto

test(lexicon): clean up obsolete test data files

Remove test data files that are no longer valid after enum → knownValues changes:

**Removed obsolete enum validation tests:**
- post/post-invalid-enum-type.json - knownValues allow unknown types
- community/moderator-invalid-permissions.json - knownValues allow extension
- interaction/share-valid*.json (2 files) - interaction lexicons removed
- interaction/tag-*.json (3 files) - interaction lexicons removed

**Fixed invalid test data:**
- moderation/tribunal-vote-valid.json - corrected invalid AT-URI format
Changed: at://$1/... → at://did:plc:testuser123/...

**Rationale:**
With knownValues (vs strict enums), the lexicon validator accepts unknown
values for extensibility. These test files expected rejection of unknown
enum values, which no longer applies under the knownValues pattern.

**Validation Status:** All 58 lexicons validated successfully
- 15/15 valid test files passing
- 11/11 invalid test files correctly rejected
- 13 record types with test coverage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

+1 -50
-9
tests/lexicon-test-data/community/moderator-invalid-permissions.json
··· 1 - { 2 - "$type": "social.coves.community.moderator", 3 - "user": "did:plc:moderator123", 4 - "community": "did:plc:community123", 5 - "role": "moderator", 6 - "permissions": ["remove_posts", "invalid-permission"], 7 - "createdAt": "2024-06-15T10:00:00Z", 8 - "createdBy": "did:plc:owner123" 9 - }
-5
tests/lexicon-test-data/interaction/share-valid-no-community.json
··· 1 - { 2 - "$type": "social.coves.interaction.share", 3 - "subject": "at://did:plc:originalauthor/social.coves.post.record/3k7a3dmb5bk2c", 4 - "createdAt": "2025-01-09T17:00:00Z" 5 - }
-6
tests/lexicon-test-data/interaction/share-valid.json
··· 1 - { 2 - "$type": "social.coves.interaction.share", 3 - "subject": "at://did:plc:originalauthor/social.coves.post.record/3k7a3dmb5bk2c", 4 - "community": "did:plc:targetcommunity", 5 - "createdAt": "2025-01-09T17:00:00Z" 6 - }
-6
tests/lexicon-test-data/interaction/tag-invalid-empty.json
··· 1 - { 2 - "$type": "social.coves.interaction.tag", 3 - "subject": "at://did:plc:author123/social.coves.post.record/3k7a3dmb5bk2c", 4 - "tag": "", 5 - "createdAt": "2025-01-09T17:15:00Z" 6 - }
-6
tests/lexicon-test-data/interaction/tag-valid-custom.json
··· 1 - { 2 - "$type": "social.coves.interaction.tag", 3 - "subject": "at://did:plc:author123/social.coves.post.record/3k7a3dmb5bk2c", 4 - "tag": "beginner-friendly", 5 - "createdAt": "2025-01-09T17:15:00Z" 6 - }
-6
tests/lexicon-test-data/interaction/tag-valid-known.json
··· 1 - { 2 - "$type": "social.coves.interaction.tag", 3 - "subject": "at://did:plc:author123/social.coves.post.record/3k7a3dmb5bk2c", 4 - "tag": "nsfw", 5 - "createdAt": "2025-01-09T17:15:00Z" 6 - }
+1 -1
tests/lexicon-test-data/moderation/tribunal-vote-valid.json
··· 1 1 { 2 2 "$type": "social.coves.moderation.tribunalVote", 3 3 "tribunal": "at://did:plc:community123/social.coves.moderation.tribunal/3k7a3dmb5bk2c", 4 - "subject": "at://$1/social.coves.community.post/3k7a2clb4bj2b", 4 + "subject": "at://did:plc:testuser123/social.coves.community.post/3k7a2clb4bj2b", 5 5 "decision": "remove", 6 6 "reasoning": "The moderator's action was justified based on clear violation of Rule 2 (No Spam). The user posted the same promotional content across multiple communities within a short timeframe.", 7 7 "precedents": [
-11
tests/lexicon-test-data/post/post-invalid-enum-type.json
··· 1 - { 2 - "$type": "social.coves.community.post", 3 - "community": "did:plc:programming123", 4 - "author": "did:plc:testauthor123", 5 - "postType": "invalid-type", 6 - "title": "This has an invalid post type", 7 - "content": "The postType field is not defined in the schema and should be rejected", 8 - "tags": [], 9 - "langs": ["en"], 10 - "createdAt": "2025-01-09T14:30:00Z" 11 - }