Move error raise into query
This commit is contained in:
parent
4c1b124009
commit
c7367c0511
|
@ -27,7 +27,7 @@ module Capybara
|
|||
query = query(*args)
|
||||
synchronize do
|
||||
results = resolve(query)
|
||||
raise_find_error(query) unless results.length == 1
|
||||
query.raise_error!(:find, results) unless results.length == 1
|
||||
results.first
|
||||
end
|
||||
end
|
||||
|
@ -143,12 +143,6 @@ module Capybara
|
|||
end.select { |node| query.matches_filters?(node) }
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def raise_find_error(query)
|
||||
raise Capybara::ElementNotFound, query.failure_message(:find, self)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
module Capybara
|
||||
class Query
|
||||
attr_accessor :selector, :locator, :options, :xpath
|
||||
attr_accessor :node, :selector, :locator, :options, :xpath
|
||||
|
||||
def initialize(node, *args)
|
||||
@node = node
|
||||
@options = if args.last.is_a?(Hash) then args.pop.dup else {} end
|
||||
unless options.has_key?(:visible)
|
||||
@options[:visible] = Capybara.ignore_hidden_elements
|
||||
|
@ -20,7 +21,7 @@ module Capybara
|
|||
@xpath = @selector.call(@locator).to_s
|
||||
end
|
||||
|
||||
def failure_message(type, node)
|
||||
def failure_message(type)
|
||||
message = selector.failure_message.call(node, self) if selector.failure_message
|
||||
message ||= options[:message]
|
||||
if type == :assert
|
||||
|
@ -31,7 +32,7 @@ module Capybara
|
|||
message
|
||||
end
|
||||
|
||||
def negative_failure_message(type, node)
|
||||
def negative_failure_message(type)
|
||||
"expected #{description} not to return anything"
|
||||
end
|
||||
|
||||
|
@ -55,6 +56,10 @@ module Capybara
|
|||
true
|
||||
end
|
||||
|
||||
def raise_error!(type, results)
|
||||
raise Capybara::ElementNotFound, failure_message(type)
|
||||
end
|
||||
|
||||
def matches_count?(nodes)
|
||||
case
|
||||
when nodes.empty?
|
||||
|
|
|
@ -16,11 +16,11 @@ module Capybara
|
|||
end
|
||||
|
||||
def failure_message_for_should
|
||||
query.failure_message(:assert, @actual)
|
||||
query.failure_message(:assert)
|
||||
end
|
||||
|
||||
def failure_message_for_should_not
|
||||
query.negative_failure_message(:assert, @actual)
|
||||
query.negative_failure_message(:assert)
|
||||
end
|
||||
|
||||
def description
|
||||
|
|
Loading…
Reference in New Issue