Skip to content

Commit 4d81a8b

Browse files
committed
should require a block matcher
1 parent beed037 commit 4d81a8b

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

lib/rspec/rails/matchers/have_reported_error.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ def with(expected_attributes)
3333
end
3434

3535
def matches?(block)
36+
if block.nil?
37+
raise ArgumentError, "block is required for have_reported_error matcher"
38+
end
39+
3640
@error_subscriber = ErrorSubscriber.new
3741
::Rails.error.subscribe(@error_subscriber)
3842

@@ -181,6 +185,8 @@ def unmatched_attributes(actual)
181185
def have_reported_error(expected_error = nil)
182186
HaveReportedError.new(expected_error)
183187
end
188+
189+
alias_method :reports_error, :have_reported_error
184190
end
185191
end
186192
end

spec/rspec/rails/matchers/have_reported_error_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@
44
class TestError < StandardError; end
55
class AnotherTestError < StandardError; end
66

7+
it "has an reports_error alias" do
8+
expect {Rails.error.report(StandardError.new("test error"))}.to reports_error
9+
end
10+
11+
it "warns that passing value expectation doesn't work" do
12+
expect {
13+
expect(Rails.error.report(StandardError.new("test error"))).to have_reported_error
14+
}.to raise_error(ArgumentError, "block is required for have_reported_error matcher")
15+
end
16+
717
describe "basic functionality" do
818
it "passes when an error is reported" do
919
expect {Rails.error.report(StandardError.new("test error"))}.to have_reported_error

0 commit comments

Comments
 (0)