63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
# 06 Notification Tests and Release Hardening
|
|
|
|
Implementation guide: [Ticket Implementation Guide](../ticket-implementation-guide.md)
|
|
|
|
## Branch
|
|
|
|
`codex/v0.5-webhook-notification/06-notification-tests-and-release-hardening`
|
|
|
|
Start this branch from `codex/v0.5-webhook-notification/05-discord-webhook-delivery`.
|
|
|
|
## Goal
|
|
|
|
Complete release-level coverage and polish for v0.5 webhook notifications.
|
|
|
|
## Requirements
|
|
|
|
- Review the full v0.5 implementation against the release README and all prior tickets.
|
|
- Fill missing tests for permissions, validation, hidden secrets, queued delivery, delivery logs, disabled actions, no-op moves, and multiple actions per event.
|
|
- Confirm project settings navigation is consistent across settings pages.
|
|
- Confirm existing ticket move flows still behave the same for web, API, and MCP clients.
|
|
- Confirm documentation matches the implemented behavior.
|
|
- Update release ticket docs only when they differ from the finished implementation.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- All v0.5 acceptance criteria are covered by automated tests.
|
|
- A ticket status change can trigger multiple enabled actions for the same project.
|
|
- Failed external deliveries do not prevent ticket status movement.
|
|
- Secrets are never exposed in resources, Inertia props, logs, or tests.
|
|
- Existing web, API, and MCP status movement tests pass.
|
|
- The release docs are accurate after implementation.
|
|
|
|
## Tests
|
|
|
|
- End-to-end feature tests for creating actions and triggering deliveries from ticket status movement.
|
|
- Authorization tests for project admin management and non-admin denial.
|
|
- Regression tests for web, API, and MCP ticket status moves.
|
|
- HTTP fake tests for webhook and Discord delivery.
|
|
- Queue tests for dispatch behavior and retryable failures.
|
|
|
|
## Verification
|
|
|
|
- `php artisan route:list --except-vendor`
|
|
- `php artisan wayfinder:generate --with-form --no-interaction`
|
|
- `vendor/bin/pint --dirty --format agent`
|
|
- `php artisan test --compact tests/Feature/Notifications tests/Feature/Projects tests/Feature/Api/TicketApiTest.php tests/Feature/Mcp`
|
|
- `npm run types:check`
|
|
- `git diff --check`
|
|
|
|
## Commit And Push
|
|
|
|
- Commit only this ticket's changes.
|
|
- Push with `git push origin codex/v0.5-webhook-notification/06-notification-tests-and-release-hardening`.
|
|
|
|
## Out of Scope
|
|
|
|
- New notification channels beyond webhook and Discord
|
|
- User bell notifications
|
|
- Unread counters
|
|
- Incoming webhooks
|
|
- API or MCP management endpoints
|
|
- OAuth, scoped notification tokens, or external app installations
|