## Test Anti-Pattern: Bare have_http_status Hides Debugging Info
### Problem
Using `expect(response).to have_http_status(:ok)` WITHOUT also checking `response.body` hides critical debugging clues when status checks fail. This is a common issue that causes agents to miss important error messages in the response body.
### BAD (hides debugging info):
```ruby
expect(response).to have_http_status(:ok)
```
When this fails with "expected 200 but got 422", you can't see the error message that explains WHY it failed.
### GOOD (shows debugging info):
```ruby
# Option 1: Use custom matcher
expect(response).to have_api_success
# Option 2: Check both status and body
expect(response).to have_http_status(:ok)
expect(response.body).to include("expected_data")
# Option 3: Use helper
expect_api_success
# For error cases:
expect_api_error(422, message: /Validation failed/)
```
### Files
- spec/support/response_matchers.rb - Custom matchers and helpers
- spec/support/response_matchers_spec.rb - Tests for matchers
### Remember
Always check BOTH status AND body (or use `have_api_success`/`have_api_error` matchers).