Branch: feat/implement-public-adapters
Priority: Medium
Estimate: 2-3 hours
Parent Epic: #1
Dependencies: #2
Description
Create generic, reusable adapters for filesystem storage and Slack notifications. These adapters are product-agnostic and useful for any team adopting the reporter framework. FilesystemAdapter provides local JSON storage for development/debugging. SlackAdapter sends formatted test summaries to Slack channels.
Acceptance Criteria
Technical Requirements
- Implement
FilesystemAdapter with directory creation and JSON writing
- Migrate Slack notification logic from
slack-reporter.ts to SlackAdapter
- Add configurable message formatting for Slack (success/failure colors, emoji, etc.)
- Add TypeScript examples for both adapters
- Support environment variable configuration (SLACK_WEBHOOK_URL, etc.)
- Handle file system errors gracefully in FilesystemAdapter
New Files
packages/adapters/src/filesystem/FilesystemAdapter.ts
packages/adapters/src/filesystem/FilesystemAdapter.test.ts
packages/adapters/src/slack/SlackAdapter.ts
packages/adapters/src/slack/SlackAdapter.test.ts
packages/adapters/README.md
Branch:
feat/implement-public-adaptersPriority: Medium
Estimate: 2-3 hours
Parent Epic: #1
Dependencies: #2
Description
Create generic, reusable adapters for filesystem storage and Slack notifications. These adapters are product-agnostic and useful for any team adopting the reporter framework. FilesystemAdapter provides local JSON storage for development/debugging. SlackAdapter sends formatted test summaries to Slack channels.
Acceptance Criteria
FilesystemAdapterwrites JSON files to specified directory with configurable formattingSlackAdaptersends formatted messages to Slack webhook with test stats, failures, and flaky testsResultAdapterinterfaceTechnical Requirements
FilesystemAdapterwith directory creation and JSON writingslack-reporter.tstoSlackAdapterNew Files
packages/adapters/src/filesystem/FilesystemAdapter.tspackages/adapters/src/filesystem/FilesystemAdapter.test.tspackages/adapters/src/slack/SlackAdapter.tspackages/adapters/src/slack/SlackAdapter.test.tspackages/adapters/README.md