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.rbto 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.