Skip to content

Commit 1d45796

Browse files
committed
Merge branch 'master' into v0_10
2 parents b9a156e + 3251c65 commit 1d45796

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

spec/support/custom_matchers.rb

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Add better debuggability to be_forbidden failures
2+
RSpec::Matchers.define :be_forbidden do
3+
match(&:forbidden?)
4+
5+
failure_message do |actual|
6+
debug_text_for_failure('forbidden', response: actual, last_request: last_request)
7+
end
8+
end
9+
10+
# Add better debuggability to be_not_found failures
11+
RSpec::Matchers.define :be_not_found do
12+
match(&:not_found?)
13+
14+
failure_message do |actual|
15+
debug_text_for_failure('not_found', response: actual, last_request: last_request)
16+
end
17+
end
18+
19+
# Add better debuggability to be_unprocessable failures
20+
RSpec::Matchers.define :be_unprocessable do
21+
match(&:unprocessable?)
22+
23+
failure_message do |actual|
24+
debug_text_for_failure('unprocessable', response: actual, last_request: last_request)
25+
end
26+
end
27+
28+
# Add better debuggability to be_successful failures
29+
RSpec::Matchers.define :be_successful do
30+
match(&:successful?)
31+
32+
failure_message do |actual|
33+
debug_text_for_failure('successful', response: actual, last_request: last_request)
34+
end
35+
end
36+
37+
# Add better debuggability to be_ok failures
38+
RSpec::Matchers.define :be_ok do
39+
match(&:ok?)
40+
41+
failure_message do |actual|
42+
debug_text_for_failure('ok', response: actual, last_request: last_request)
43+
end
44+
end
45+
46+
def debug_text_for_failure(expected, response:, last_request:)
47+
debug_text = "expected response to be #{expected} but HTTP code was #{response.status}."
48+
debug_text += " Last request was #{last_request.request_method} to #{last_request.fullpath}"
49+
unless last_request.get?
50+
debug_text += " with body:\n" + last_request.body.read
51+
end
52+
debug_text += "\nResponse body was:\n" + response.body
53+
debug_text
54+
end

0 commit comments

Comments
 (0)