Refactor acceptance_tests.rb: Add DRY helper methods to reduce duplication #40
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR refactors
spec/acceptance/acceptance_tests.rb
to make it more DRY, concise, and maintainable while preserving all existing logic and test coverage.Changes Made
File size reduction: 536 → 452 lines (84 lines removed, ~15.7% reduction)
Added 10 helper methods to eliminate code duplication:
make_request()
- Unified HTTP request handling for GET/POST operationsexpect_response()
- Standardized response validation with optional body content checkingparse_json_response()
- Consistent JSON parsing across all testsjson_headers()
- Reusable header construction with Content-Type defaultsgenerate_hmac_signature()
- Generic HMAC signature generation with configurable algorithmsgenerate_hmac_with_timestamp()
- HMAC signature generation with timestamp patternsgenerate_slack_signature()
- Slack-specific signature format (v0=
prefix)current_timestamp()
- ISO8601 timestamp helperunix_timestamp()
- Unix timestamp helperexpired_timestamp()
/expired_unix_timestamp()
- Test data helpers for expired timestampsBefore/After Comparison
Before (repetitive):
After (DRY):
Benefits
Testing
Fixes #39.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.