Files
nextcloud-integration/TEST-PLAN.md
WLTBAgent 914845a59f Add comprehensive testing plan and quick test script
- TEST-PLAN.md: 38 detailed tests covering all features
- quick-test.sh: Automated quick test for basic functionality
- Tests include IMAP, SMTP, attachments, SSL/TLS, error handling
2026-02-20 18:08:47 +00:00

1026 lines
23 KiB
Markdown

# Nextcloud Mail Tool - Testing Plan
**Tool:** `nextcloud-mail`
**Test Environment:** https://teamworkapps.com (Nextcloud 25.0.13)
**Date:** 2026-02-20
---
## Pre-Test Setup
### 1. Build Verification
```bash
cd projects/nextcloud-integration
# Run build script with your credentials
./build.sh https://teamworkapps.com <username> <password_or_token>
# Verify binary exists
ls -lh ~/bin/nextcloud-mail
# Verify binary is executable
file ~/bin/nextcloud-mail
```
**Expected Results:**
- Binary exists at `~/bin/nextcloud-mail`
- Binary is executable (ELF executable)
- Size should be ~7-8MB (static build with dependencies)
### 2. Credential Verification
```bash
# Test basic connectivity (should succeed if credentials are correct)
~/bin/nextcloud-mail --op list-folders
```
**Expected Results:**
- Lists at least INBOX folder
- No authentication errors
- No SSL/TLS certificate errors (unless `--ignore-certs` is set)
---
## Test Suite 1: IMAP Operations
### Test 1.1: List Folders
**Purpose:** Verify IMAP connectivity and folder discovery
```bash
~/bin/nextcloud-mail --op list-folders
```
**Expected Results:**
- Lists all IMAP folders/mailboxes
- Shows: INBOX, Sent, Drafts, Trash, Archive (or similar)
- Output format:
```
IMAP Folders:
INBOX
Sent
Drafts
Trash
Archive
```
**Pass Criteria:**
- ✅ At least 3 folders listed
- ✅ INBOX folder exists
- ✅ No errors
---
### Test 1.2: List Messages (Page 1)
**Purpose:** Verify message listing with pagination
```bash
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 10
```
**Expected Results:**
- Lists messages in INBOX (up to 10)
- Shows UID, From, To, Subject, Date
- Output format:
```
Messages in INBOX (Page 1 of X, showing Y-Z of N):
UID: 1234
From: John Doe <john@example.com>
To: me@example.com
Subject: Test Email
Date: Fri, 20 Feb 2026 17:00:00 +0000
```
**Pass Criteria:**
- ✅ Header shows correct pagination info
- ✅ Messages listed with all fields (UID, From, To, Subject, Date)
- ✅ Handles empty INBOX gracefully
- ✅ No errors
---
### Test 1.3: List Messages (Pagination)
**Purpose:** Verify pagination works correctly
```bash
# Page 1
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 5
# Page 2
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 2 --page-size 5
```
**Expected Results:**
- Page 1 and Page 2 show different messages
- Total message count consistent
- Pagination math correct (showing X-Y of N)
**Pass Criteria:**
- ✅ Page 1 ≠ Page 2 (different messages)
- ✅ Total count consistent
- ✅ Page numbers update correctly
---
### Test 1.4: List Messages (Different Folders)
**Purpose:** Verify folder selection works
```bash
# List in Sent folder
~/bin/nextcloud-mail --op list-messages --folder Sent --page 1 --page-size 5
# List in Drafts folder
~/bin/nextcloud-mail --op list-messages --folder Drafts --page 1 --page-size 5
```
**Expected Results:**
- Different folders show different messages
- Sent folder has outbound messages
- Drafts folder has draft messages (if any)
**Pass Criteria:**
- ✅ Folder selection works
- ✅ Different content in different folders
- ✅ No errors for empty folders
---
### Test 1.5: Get Message Content
**Purpose:** Verify message body retrieval
```bash
# First, list messages to get a UID
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 1
# Get that message's content
~/bin/nextcloud-mail --op get-message --folder INBOX --uids 1234
```
**Expected Results:**
- Displays message UID, From, Subject
- Prints message body (text/plain)
- Output includes full message content
**Pass Criteria:**
- ✅ Message content displayed
- ✅ Body is readable text
- ✅ No truncation errors
---
### Test 1.6: Search Messages
**Purpose:** Verify server-side search
```bash
# Search for common term
~/bin/nextcloud-mail --op search --folder INBOX --query "test"
# Search for another term
~/bin/nextcloud-mail --op search --folder INBOX --query "meeting"
```
**Expected Results:**
- Returns matching messages
- Shows UID, From, Subject, Date
- No results message if nothing matches
**Pass Criteria:**
- ✅ Search finds relevant messages
- ✅ Empty search handled gracefully
- ✅ Query parameter respected
---
## Test Suite 2: Attachment Operations
### Test 2.1: List Attachments
**Purpose:** Verify attachment detection
```bash
# Get a message with attachments
~/bin/nextcloud-mail --op get-message --folder INBOX --uids 1234 --list-attachments
```
**Expected Results:**
- Lists all attachments
- Shows filename, content type, and part path
- Output format:
```
UID: 1234
From: John Doe <john@example.com>
Subject: Email with attachments
Attachments (2):
1. report.pdf (application/pdf) - Part: 1.2
2. image.png (image/png) - Part: 1.3
```
**Pass Criteria:**
- ✅ All attachments listed
- ✅ Correct content types shown
- ✅ Part paths displayed
- ✅ Shows 0 attachments for messages without any
---
### Test 2.2: Save Attachments
**Purpose:** Verify attachment download
```bash
# Create test directory
mkdir -p /tmp/mail-attachments
# Save attachments
~/bin/nextcloud-mail --op get-message --folder INBOX --uids 1234 \
--save-attachments --save-dir /tmp/mail-attachments
# Verify files exist
ls -lh /tmp/mail-attachments
```
**Expected Results:**
- Attachments saved to specified directory
- Original filenames preserved
- File sizes reasonable (not 0 bytes)
- Output:
```
Saving attachments to /tmp/mail-attachments:
Saved: report.pdf (1024576 bytes)
Saved: image.png (45678 bytes)
```
**Pass Criteria:**
- ✅ All attachments saved
- ✅ Filenames match original
- ✅ File sizes > 0 bytes
- ✅ Files are valid (can open PDF, images, etc.)
**Validation Commands:**
```bash
# Check PDF is valid
file /tmp/mail-attachments/report.pdf
# Should show: PDF document
# Check image is valid
file /tmp/mail-attachments/image.png
# Should show: PNG image data
```
---
### Test 2.3: Multiple Attachments
**Purpose:** Verify handling of multiple attachments in one message
```bash
# Find message with 3+ attachments
# Then test:
~/bin/nextcloud-mail --op get-message --folder INBOX --uids <uid> \
--save-attachments --save-dir /tmp/multi-attachments
# Count downloaded files
ls -1 /tmp/multi-attachments | wc -l
```
**Expected Results:**
- All attachments downloaded
- No files skipped
- Correct count matches message attachment count
**Pass Criteria:**
- ✅ All attachments saved
- ✅ No download errors
- ✅ File count matches
---
## Test Suite 3: SMTP Operations
### Test 3.1: Send Simple Email
**Purpose:** Verify basic email sending
```bash
# Send test email to yourself
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "nextcloud-mail Test - Simple Email" \
--body "This is a test email from nextcloud-mail tool."
```
**Expected Results:**
- Command completes without errors
- Message: "Email sent successfully"
- Email appears in INBOX or Sent folder
**Pass Criteria:**
- ✅ Command exits with code 0
- ✅ "Email sent successfully" message
- ✅ Email appears in INBOX (if you CC yourself)
**Verification:**
```bash
# Wait 10 seconds, then check INBOX
sleep 10
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 1 | grep "Test - Simple Email"
```
---
### Test 3.2: Send Email to Multiple Recipients
**Purpose:** Verify multiple recipient handling
```bash
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to "recipient1@example.com,recipient2@example.com" \
--subject "nextcloud-mail Test - Multiple Recipients" \
--body "This email was sent to multiple recipients."
```
**Expected Results:**
- Email sent successfully
- All recipients receive the email
**Pass Criteria:**
- ✅ Command succeeds
- ✅ Multiple recipients parsed correctly
- ✅ No errors
---
### Test 3.3: Send Email with Single Attachment
**Purpose:** Verify attachment sending
```bash
# Create test file
echo "This is a test attachment." > /tmp/test-attachment.txt
# Send email
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "nextcloud-mail Test - Single Attachment" \
--body "Email with one attachment." \
--attachments "/tmp/test-attachment.txt"
```
**Expected Results:**
- Email sent successfully
- Attachment included in email
**Pass Criteria:**
- ✅ Command succeeds
- ✅ Attachment appears in received email
- ✅ Attachment content is correct
**Verification:**
```bash
# After receiving, check attachment:
~/bin/nextcloud-mail --op get-message --folder INBOX --uids <uid> --list-attachments
# Should show: test-attachment.txt
```
---
### Test 3.4: Send Email with Multiple Attachments
**Purpose:** Verify multiple attachment handling
```bash
# Create test files
echo "Attachment 1" > /tmp/att1.txt
echo "Attachment 2" > /tmp/att2.txt
echo "Attachment 3" > /tmp/att3.txt
# Send email
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "nextcloud-mail Test - Multiple Attachments" \
--body "Email with three attachments." \
--attachments "/tmp/att1.txt,/tmp/att2.txt,/tmp/att3.txt"
```
**Expected Results:**
- Email sent successfully
- All 3 attachments included
**Pass Criteria:**
- ✅ Command succeeds
- ✅ All 3 attachments present
- ✅ All attachments correct size
**Verification:**
```bash
~/bin/nextcloud-mail --op get-message --folder INBOX --uids <uid> --list-attachments
# Should show: 3 attachments
```
---
### Test 3.5: Send Large Attachment
**Purpose:** Verify large file handling
```bash
# Create 1MB test file
dd if=/dev/zero of=/tmp/large-file.bin bs=1024 count=1024
# Send email
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "nextcloud-mail Test - Large Attachment" \
--body "Email with 1MB attachment." \
--attachments "/tmp/large-file.bin"
```
**Expected Results:**
- Email sent successfully (or timeout if server has size limit)
- Attachment included
**Pass Criteria:**
- ✅ Command succeeds (within reasonable time)
- ✅ Attachment intact
- ✅ No corruption
---
## Test Suite 4: Message Management
### Test 4.1: Move Message to Archive
**Purpose:** Verify message moving
```bash
# First, note a message UID
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 1
# Move it to Archive
~/bin/nextcloud-mail --op move-messages \
--folder INBOX --uids 1234 \
--dest-folder Archive
# Verify it's gone from INBOX
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 10 | grep 1234
# Should not find the UID
# Verify it's in Archive
~/bin/nextcloud-mail --op list-messages --folder Archive --page 1 --page-size 10 | grep 1234
# Should find the UID
```
**Expected Results:**
- Message removed from INBOX
- Message appears in Archive
- Command output: "Messages moved successfully"
**Pass Criteria:**
- ✅ Message moves correctly
- ✅ No duplication
- ✅ UID preserved
---
### Test 4.2: Move Multiple Messages
**Purpose:** Verify bulk move operation
```bash
# Get UIDs of 2-3 messages
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 3
# Move them
~/bin/nextcloud-mail --op move-messages \
--folder INBOX --uids 1234,1235,1236 \
--dest-folder Archive
# Verify all moved
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1
```
**Expected Results:**
- All messages moved
- None remain in INBOX
- All appear in Archive
**Pass Criteria:**
- ✅ All UIDs moved
- ✅ No partial failures
- ✅ Command succeeds
---
### Test 4.3: Delete Message
**Purpose:** Verify message deletion
```bash
# First, find a test message (preferably one you created)
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 1
# Delete it
~/bin/nextcloud-mail --op delete-messages --folder INBOX --uids 1234
# Verify it's gone
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 10 | grep 1234
# Should not find the UID
```
**Expected Results:**
- Message deleted from INBOX
- Command output: "Messages deleted successfully"
**Pass Criteria:**
- ✅ Message removed permanently
- ✅ UID no longer listed
- ✅ No errors
---
### Test 4.4: Delete Multiple Messages
**Purpose:** Verify bulk deletion
```bash
# Get UIDs of test messages
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 5
# Delete them
~/bin/nextcloud-mail --op delete-messages --folder INBOX --uids 1234,1235,1236
# Verify all gone
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 10
```
**Expected Results:**
- All messages deleted
- Command succeeds
**Pass Criteria:**
- ✅ All UIDs deleted
- ✅ No partial failures
- ✅ Count reduced appropriately
---
## Test Suite 5: SSL/TLS and Security
### Test 5.1: SSL/TLS Connection (Default)
**Purpose:** Verify secure connection
```bash
# Default should be SSL
~/bin/nextcloud-mail --op list-folders
```
**Expected Results:**
- Successful connection
- No certificate errors
**Pass Criteria:**
- ✅ Connects successfully
- ✅ Uses SSL/TLS
- ✅ No warnings
---
### Test 5.2: Ignore Certificate Validation
**Purpose:** Verify self-signed cert support
```bash
# Try with ignore-certs (useful for testing)
~/bin/nextcloud-mail --op list-folders --ignore-certs=true
```
**Expected Results:**
- Connects even if cert is self-signed
- No certificate validation errors
**Pass Criteria:**
- ✅ Connects regardless of cert validity
- ✅ No cert-related errors
---
### Test 5.3: STARTTLS (Non-SSL Port)
**Purpose:** Verify STARTTLS support
```bash
# Try non-SSL connection
~/bin/nextcloud-mail --op list-folders --ssl=false
```
**Expected Results:**
- Connects via STARTTLS if supported
- Fails gracefully if not supported
**Pass Criteria:**
- ✅ Works with STARTTLS if server supports it
- ✅ Clear error message if not supported
---
## Test Suite 6: Error Handling
### Test 6.1: Invalid Credentials
**Purpose:** Verify error handling
```bash
# Test with wrong password
~/bin/nextcloud-mail --op list-folders \
--imap-user <wrong-user> \
--imap-pass <wrong-pass>
```
**Expected Results:**
- Clear error message
- No crash
**Pass Criteria:**
- ✅ "IMAP login failed" or similar error
- ✅ Command exits with non-zero code
- ✅ No panic/crash
---
### Test 6.2: Invalid Folder Name
**Purpose:** Verify folder error handling
```bash
# Try to access non-existent folder
~/bin/nextcloud-mail --op list-messages --folder NonExistentFolder --page 1
```
**Expected Results:**
- Clear error message
- "failed to select folder" or similar
**Pass Criteria:**
- ✅ Descriptive error
- ✅ Command exits with non-zero code
- ✅ No crash
---
### Test 6.3: Invalid Message UID
**Purpose:** Verify UID error handling
```bash
# Try to get non-existent message
~/bin/nextcloud-mail --op get-message --folder INBOX --uids 999999999
```
**Expected Results:**
- "Message UID 999999999 not found" or similar
- Command continues
**Pass Criteria:**
- ✅ Graceful handling
- ✅ Clear error message
- ✅ No crash
---
### Test 6.4: Missing Required Parameters
**Purpose:** Verify parameter validation
```bash
# Missing --folder
~/bin/nextcloud-mail --op list-messages
# Missing --uids
~/bin/nextcloud-mail --op get-message --folder INBOX
# Missing --from and --to
~/bin/nextcloud-mail --op send-email
```
**Expected Results:**
- Clear error messages
- Usage hints
**Pass Criteria:**
- ✅ "Error: --folder is required" or similar
- ✅ Command exits with non-zero code
- ✅ Helpful error messages
---
### Test 6.5: Missing Attachment File
**Purpose:** Verify file error handling
```bash
# Try to send with non-existent attachment
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "Test" \
--body "Test" \
--attachments "/tmp/non-existent-file.txt"
```
**Expected Results:**
- Error about missing file
- Command fails gracefully
**Pass Criteria:**
- ✅ "failed to read attachment" or similar
- ✅ Command exits with non-zero code
- ✅ No partial email sent
---
## Test Suite 7: Edge Cases
### Test 7.1: Empty Folder
**Purpose:** Verify empty folder handling
```bash
# List messages in empty folder
~/bin/nextcloud-mail --op list-messages --folder EmptyFolder --page 1
```
**Expected Results:**
- "No messages in folder" or similar
- No errors
**Pass Criteria:**
- ✅ Graceful handling
- ✅ No crash
- ✅ Clear message
---
### Test 7.2: Very Long Subject
**Purpose:** Verify long string handling
```bash
# Create long subject
LONG_SUBJECT="This is a very long subject that exceeds normal length to test how the tool handles it without truncation or errors"
# Send email
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "$LONG_SUBJECT" \
--body "Long subject test"
```
**Expected Results:**
- Email sent successfully
- Subject preserved
**Pass Criteria:**
- ✅ Subject not truncated
- ✅ No encoding errors
- ✅ Email appears correctly
---
### Test 7.3: Special Characters in Subject
**Purpose:** Verify character encoding
```bash
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "Test: émojis 🎉 and spëcial chårs" \
--body "Special characters test"
```
**Expected Results:**
- Email sent successfully
- Characters preserved
**Pass Criteria:**
- ✅ Unicode characters preserved
- ✅ Subject displays correctly
- ✅ No encoding errors
---
### Test 7.4: Empty Body
**Purpose:** Verify empty body handling
```bash
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "Test with empty body" \
--body ""
```
**Expected Results:**
- Email sent successfully
- Body is empty but valid
**Pass Criteria:**
- ✅ Email delivered
- ✅ No validation errors
- ✅ Empty body is acceptable
---
## Test Suite 8: Performance
### Test 8.1: Large Folder Listing
**Purpose:** Verify performance with many messages
```bash
# List with large page size
time ~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 100
```
**Expected Results:**
- Completes in reasonable time (< 10 seconds)
- No timeouts
**Pass Criteria:**
- ✅ Completes within 10 seconds
- ✅ No memory issues
- ✅ All messages listed
---
### Test 8.2: Many Attachments Download
**Purpose:** Verify attachment download performance
```bash
# Test with message containing 10+ attachments
# Then:
time ~/bin/nextcloud-mail --op get-message --folder INBOX --uids <uid> \
--save-attachments --save-dir /tmp/many-attachments
```
**Expected Results:**
- All attachments downloaded
- Reasonable time
**Pass Criteria:**
- ✅ All attachments saved
- ✅ Completes in reasonable time
- ✅ No timeouts
---
## Test Suite 9: Integration Workflow
### Test 9.1: Full Email Workflow
**Purpose:** Verify complete email lifecycle
```bash
# Step 1: Send email with attachments
echo "Test attachment content" > /tmp/workflow-test.txt
~/bin/nextcloud-mail --op send-email \
--from <your-email> \
--to <your-email> \
--subject "Integration Workflow Test" \
--body "This is a workflow test." \
--attachments "/tmp/workflow-test.txt"
# Step 2: Wait and find the email
sleep 10
~/bin/nextcloud-mail --op list-messages --folder INBOX --page 1 --page-size 5 | grep "Integration Workflow Test"
# Step 3: Get the message UID and retrieve
~/bin/nextcloud-mail --op get-message --folder INBOX --uids <uid>
# Step 4: List attachments
~/bin/nextcloud-mail --op get-message --folder INBOX --uids <uid> --list-attachments
# Step 5: Save attachments
mkdir -p /tmp/workflow-attachments
~/bin/nextcloud-mail --op get-message --folder INBOX --uids <uid> \
--save-attachments --save-dir /tmp/workflow-attachments
# Step 6: Verify attachment
cat /tmp/workflow-attachments/workflow-test.txt
# Step 7: Search for it
~/bin/nextcloud-mail --op search --folder INBOX --query "Integration Workflow Test"
# Step 8: Move to Archive
~/bin/nextcloud-mail --op move-messages --folder INBOX --uids <uid> --dest-folder Archive
# Step 9: Verify it's in Archive
~/bin/nextcloud-mail --op list-messages --folder Archive --page 1 --page-size 1 | grep "Integration Workflow Test"
# Step 10: Delete from Archive
~/bin/nextcloud-mail --op delete-messages --folder Archive --uids <uid>
```
**Expected Results:**
- All 10 steps complete successfully
- Attachment preserved through all steps
- Search finds the email
- Move and delete work correctly
**Pass Criteria:**
- ✅ All steps succeed
- ✅ Attachment intact throughout
- ✅ No data loss
- ✅ Workflow complete
---
## Test Execution Checklist
Use this checklist to track test completion:
### Pre-Test
- [ ] Build verification
- [ ] Credential verification
### IMAP Operations
- [ ] Test 1.1: List Folders
- [ ] Test 1.2: List Messages (Page 1)
- [ ] Test 1.3: List Messages (Pagination)
- [ ] Test 1.4: List Messages (Different Folders)
- [ ] Test 1.5: Get Message Content
- [ ] Test 1.6: Search Messages
### Attachment Operations
- [ ] Test 2.1: List Attachments
- [ ] Test 2.2: Save Attachments
- [ ] Test 2.3: Multiple Attachments
### SMTP Operations
- [ ] Test 3.1: Send Simple Email
- [ ] Test 3.2: Send Email to Multiple Recipients
- [ ] Test 3.3: Send Email with Single Attachment
- [ ] Test 3.4: Send Email with Multiple Attachments
- [ ] Test 3.5: Send Large Attachment
### Message Management
- [ ] Test 4.1: Move Message to Archive
- [ ] Test 4.2: Move Multiple Messages
- [ ] Test 4.3: Delete Message
- [ ] Test 4.4: Delete Multiple Messages
### SSL/TLS and Security
- [ ] Test 5.1: SSL/TLS Connection (Default)
- [ ] Test 5.2: Ignore Certificate Validation
- [ ] Test 5.3: STARTTLS (Non-SSL Port)
### Error Handling
- [ ] Test 6.1: Invalid Credentials
- [ ] Test 6.2: Invalid Folder Name
- [ ] Test 6.3: Invalid Message UID
- [ ] Test 6.4: Missing Required Parameters
- [ ] Test 6.5: Missing Attachment File
### Edge Cases
- [ ] Test 7.1: Empty Folder
- [ ] Test 7.2: Very Long Subject
- [ ] Test 7.3: Special Characters in Subject
- [ ] Test 7.4: Empty Body
### Performance
- [ ] Test 8.1: Large Folder Listing
- [ ] Test 8.2: Many Attachments Download
### Integration Workflow
- [ ] Test 9.1: Full Email Workflow
---
## Test Results Template
After running tests, fill in results:
```markdown
# Test Results - [Date]
## Build Information
- Commit: [commit-hash]
- Built: [timestamp]
- Binary size: [size]
## Test Summary
- Total tests: 38
- Passed: [number]
- Failed: [number]
- Success rate: [percentage]%
## Failed Tests
- [Test X.Y]: [description]
- Expected: [what should happen]
- Actual: [what actually happened]
- Notes: [debugging info]
## Issues Found
- [Issue 1]: [description]
- Severity: [low/medium/high]
- Impact: [what it affects]
## Recommendations
1. [recommendation 1]
2. [recommendation 2]
```
---
## Notes
- All tests assume credentials are embedded via build script
- Adjust UIDs, emails, and paths to match your environment
- Some tests may require you to create test emails first
- Test 9.1 is the most comprehensive - run it last to verify everything works
---
*Test Plan: 2026-02-20*