Module: Dill::DSL
- Included in:
- Role
- Defined in:
- lib/dill/dsl.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#click(name, *args) ⇒ Object
Clicks the widget defined by
name
and optionalargs
. -
#document ⇒ Document
The current document with the class of the current object set as the widget lookup scope.
-
#eventually(wait_time = Capybara.default_max_wait_time, &block) ⇒ Object
re-run one or more assertions until either they all pass, or Dill times out, which will result in a test failure.
-
#has_widget?(name, *args) ⇒ Boolean
(also: #widget?)
Whether one or more widgets exist in the current document.
-
#hover(name, *args) ⇒ Object
Hovers the widget defined by
name
and optionalargs
. - #not_visible?(name, *args) ⇒ Boolean
- #set(name, fields) ⇒ Object
- #submit(name, fields = {}) ⇒ Object
- #value(name, *args) ⇒ Object
- #values(name, *args) ⇒ Object
- #visible?(name, *args) ⇒ Boolean
- #visit(path) ⇒ Object
-
#widget(name, *args) ⇒ Object
Returns a widget instance for the given name.
-
#widgets(name, *args) ⇒ Object
Returns a list of widget instances for the given name.
Instance Attribute Details
#widget_lookup_scope ⇒ Object
81 82 83 |
# File 'lib/dill/dsl.rb', line 81 def @widget_lookup_scope ||= end |
Instance Method Details
#click(name, *args) ⇒ Object
Clicks the widget defined by name
and optional args
.
Makes no distinction between links or buttons.
class MyWidget < Dill::Widget
root { |text| ['.my-widget', text: text] }
end
# <a href="#one" class="my-widget">One</li>
# <a href="#two" class="my-widget">Two</li> <!-- clicks this node -->
click :my_widget, 'Two'
16 17 18 |
# File 'lib/dill/dsl.rb', line 16 def click(name, *args) (name, *args).click end |
#document ⇒ Document
Returns the current document with the class of the current object set as the widget lookup scope.
27 28 29 |
# File 'lib/dill/dsl.rb', line 27 def document Document.new() end |
#eventually(wait_time = Capybara.default_max_wait_time, &block) ⇒ Object
re-run one or more assertions until either they all pass, or Dill times out, which will result in a test failure.
87 88 89 |
# File 'lib/dill/dsl.rb', line 87 def eventually(wait_time = Capybara.default_max_wait_time, &block) Checkpoint.wait_for wait_time, &block end |
#has_widget?(name, *args) ⇒ Boolean Also known as: widget?
Returns Whether one or more widgets exist in the current document.
33 34 35 |
# File 'lib/dill/dsl.rb', line 33 def (name, *args) document.(name, *args) end |
#hover(name, *args) ⇒ Object
Hovers the widget defined by name
and optional args
.
21 22 23 |
# File 'lib/dill/dsl.rb', line 21 def hover(name, *args) (name, *args).hover end |
#not_visible?(name, *args) ⇒ Boolean
43 44 45 |
# File 'lib/dill/dsl.rb', line 43 def not_visible?(name, *args) document.not_visible?(name, *args) end |
#set(name, fields) ⇒ Object
47 48 49 |
# File 'lib/dill/dsl.rb', line 47 def set(name, fields) (name).set fields end |
#submit(name, fields = {}) ⇒ Object
51 52 53 |
# File 'lib/dill/dsl.rb', line 51 def submit(name, fields = {}) (name).submit_with fields end |
#value(name, *args) ⇒ Object
55 56 57 |
# File 'lib/dill/dsl.rb', line 55 def value(name, *args) (name, *args).value end |
#values(name, *args) ⇒ Object
59 60 61 |
# File 'lib/dill/dsl.rb', line 59 def values(name, *args) (name, *args).map(&:value) end |
#visible?(name, *args) ⇒ Boolean
39 40 41 |
# File 'lib/dill/dsl.rb', line 39 def visible?(name, *args) document.visible?(name, *args) end |
#visit(path) ⇒ Object
63 64 65 |
# File 'lib/dill/dsl.rb', line 63 def visit(path) Capybara.current_session.visit path end |
#widget(name, *args) ⇒ Object
Returns a widget instance for the given name.
70 71 72 |
# File 'lib/dill/dsl.rb', line 70 def (name, *args) eventually { document.(name, *args) } end |
#widgets(name, *args) ⇒ Object
Returns a list of widget instances for the given name.
77 78 79 |
# File 'lib/dill/dsl.rb', line 77 def (name, *args) document.(name, *args) end |