allow additional arguments for be_able_to matcher, this requires Ruby 1.8.7 or higher to use matcher
This commit is contained in:
parent
cf49c5b9de
commit
6e1e96c85a
|
@ -1,5 +1,7 @@
|
|||
1.1.0 (not released)
|
||||
|
||||
* Adding be_able_to RSpec matcher (thanks dchelimsky) - see issue #54
|
||||
|
||||
* Support additional arguments to can? which get passed to the block - see issue #48
|
||||
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
Spec::Matchers.define :be_able_to do |action, subject|
|
||||
Spec::Matchers.define :be_able_to do |*args|
|
||||
match do |model|
|
||||
model.can?(action, subject)
|
||||
model.can?(*args)
|
||||
end
|
||||
|
||||
failure_message_for_should do |model|
|
||||
"expected to be able to #{action.inspect} #{subject.inspect}"
|
||||
"expected to be able to #{args.map(&:inspect).join(" ")}"
|
||||
end
|
||||
|
||||
failure_message_for_should_not do |model|
|
||||
"expected not to be able to #{action.inspect} #{subject.inspect}"
|
||||
"expected not to be able to #{args.map(&:inspect).join(" ")}"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,4 +22,12 @@ describe "be_able_to" do
|
|||
object.should_not be_able_to(:read, 123)
|
||||
end.should raise_error('expected not to be able to :read 123')
|
||||
end
|
||||
|
||||
it "delegates additional arguments to can? and reports in failure message" do
|
||||
object = Object.new
|
||||
mock(object).can?(:read, 123, 456) { false }
|
||||
expect do
|
||||
object.should be_able_to(:read, 123, 456)
|
||||
end.should raise_error('expected to be able to :read 123 456')
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user