# Testing Checklist

This document provides a comprehensive checklist for testing StarPunk functionality before release.

## Manual Testing Checklist

### Core Functionality
- [ ] Create notes via web interface
- [ ] Create notes via Micropub JSON
- [ ] Create notes via Micropub form-encoded
- [ ] Notes display with proper microformats
- [ ] Markdown renders correctly
- [ ] Slugs generate uniquely
- [ ] Timestamps record accurately

### Authentication & Security
- [ ] IndieAuth login flow works
- [ ] Micropub client authentication
- [ ] Token expiration works
- [ ] Rate limiting functions

### Syndication & Standards
- [ ] RSS feed validates (W3C validator)
- [ ] API returns correct status codes

### Automated Testing
- [ ] All unit tests pass
- [ ] All integration tests pass
- [ ] Test coverage >80%

## Validation Tools

### IndieWeb Standards
- **IndieWebify.me**: https://indiewebify.me/
  - Verify microformats (h-entry, h-card, h-feed)
  - Check IndieAuth implementation

- **IndieAuth Validator**: https://indieauth.com/validate
  - Test IndieAuth flow
  - Validate token handling

- **Micropub Test Suite**: https://micropub.rocks/
  - Comprehensive Micropub endpoint testing
  - Verify spec compliance

### Web Standards
- **W3C Feed Validator**: https://validator.w3.org/feed/
  - Validate RSS 2.0 feed structure
  - Check date formatting
  - Verify CDATA wrapping

- **W3C HTML Validator**: https://validator.w3.org/
  - Validate HTML5 markup
  - Check semantic structure
  - Verify accessibility

- **JSON Validator**: https://jsonlint.com/
  - Validate API responses
  - Check Micropub payloads

## Testing Resources

### Specifications
- IndieWeb Notes: https://indieweb.org/note
- Micropub Spec: https://micropub.spec.indieweb.org
- IndieAuth Spec: https://www.w3.org/TR/indieauth/
- Microformats2: http://microformats.org/wiki/h-entry
- RSS 2.0 Spec: https://www.rssboard.org/rss-specification

### Testing & Validation
- Micropub Test Suite: https://micropub.rocks/
- IndieAuth Testing: https://indieauth.com/
- Microformats Parser: https://pin13.net/mf2/

### Example Implementations
- IndieWeb Examples: https://indieweb.org/examples
- Micropub Clients: https://indieweb.org/Micropub/Clients

## Pre-Release Validation Workflow

1. **Run Automated Tests**
   ```bash
   uv run pytest
   ```

2. **Validate HTML**
   - Test homepage output
   - Test note permalink output
   - Run through W3C HTML Validator

3. **Validate RSS Feed**
   - Access /feed.xml
   - Run through W3C Feed Validator
   - Verify in actual RSS reader

4. **Validate Microformats**
   - Test homepage with IndieWebify.me
   - Test note permalinks
   - Use microformats parser

5. **Validate Micropub**
   - Run micropub.rocks test suite
   - Test with real Micropub client (Quill)

6. **Manual Browser Testing**
   - Chrome/Chromium
   - Firefox
   - Safari (if available)
   - Mobile browsers

7. **Security Verification**
   - CSRF protection working
   - XSS prevention verified
   - SQL injection tests pass
   - Path traversal prevention works

## Success Criteria

All checklist items must pass before V1 release. If any validation tool reports errors, they must be fixed before proceeding.

## Related Documentation

- [Testing Strategy](/home/phil/Projects/starpunk/docs/architecture/overview.md#testing-strategy)
- [Implementation Plan](/home/phil/Projects/starpunk/docs/projectplan/v1/implementation-plan.md)
- [Feature Scope](/home/phil/Projects/starpunk/docs/projectplan/v1/feature-scope.md)

**Last Updated**: 2025-11-24
