From 58419aad17d354890c611973ad5695e1aab27a0e Mon Sep 17 00:00:00 2001 From: Donnie Tognazzini Date: Fri, 15 Jul 2016 12:36:17 -0700 Subject: [PATCH 1/2] Call Capybara node.find() directly in Node find() is defined by Collection and may be defined by other subclasses. Calling node.find() directly avoids subclasses messing up load ensuring. --- lib/ae_page_objects/node.rb | 2 +- test/unit/document_test.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ae_page_objects/node.rb b/lib/ae_page_objects/node.rb index b1acc049..d919e4fa 100644 --- a/lib/ae_page_objects/node.rb +++ b/lib/ae_page_objects/node.rb @@ -89,7 +89,7 @@ def loaded_locator def ensure_loaded! if locator = loaded_locator - find(*eval_locator(locator)) + node.find(*eval_locator(locator)) end self diff --git a/test/unit/document_test.rb b/test/unit/document_test.rb index da300ee5..72b90bbb 100644 --- a/test/unit/document_test.rb +++ b/test/unit/document_test.rb @@ -64,14 +64,14 @@ def loaded_locator end some_document_class.expects(:can_load_from_current_url?).returns(true) - element_error = LoadingElementFailed.new("Twas an error") - some_document_class.any_instance.expects(:find).with("#hello").raises(element_error) + capybara_error = Capybara::ElementNotFound.new("Twas an error") + capybara_stub.session.expects(:find).with("#hello").raises(capybara_error) raised = assert_raises LoadingPageFailed do some_document_class.new end - assert_equal element_error.message, raised.message + assert_equal capybara_error.message, raised.message end def test_stale From 5a7a9ace11ebfb3173399eff5748e81bad50884a Mon Sep 17 00:00:00 2001 From: Donnie Tognazzini Date: Fri, 15 Jul 2016 12:55:42 -0700 Subject: [PATCH 2/2] Capybara delegates should raise Capybara errors --- lib/ae_page_objects/node.rb | 2 -- test/test_helpers/node_interface_tests.rb | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/ae_page_objects/node.rb b/lib/ae_page_objects/node.rb index d919e4fa..661dbbce 100644 --- a/lib/ae_page_objects/node.rb +++ b/lib/ae_page_objects/node.rb @@ -54,8 +54,6 @@ def current_url_without_params class_eval <<-RUBY def #{m}(*args, &block) node.send(:#{m}, *args, &block) - rescue Capybara::ElementNotFound => e - raise LoadingElementFailed, e.message end RUBY end diff --git a/test/test_helpers/node_interface_tests.rb b/test/test_helpers/node_interface_tests.rb index e8c1ba85..c7a48c20 100644 --- a/test/test_helpers/node_interface_tests.rb +++ b/test/test_helpers/node_interface_tests.rb @@ -10,7 +10,7 @@ def test_node_method_wraps_not_found error = Capybara::ElementNotFound.new("The message") capybara_stub.session.expects(method).with(:args).raises(error) - raised = assert_raises AePageObjects::LoadingElementFailed do + raised = assert_raises error do subject.send(method, :args) end