Module: Capybara::DSL

Defined in:
lib/capybara_spa/capybara_dsl_ext.rb

Instance Method Summary collapse

Instance Method Details

#ignoring_angular(&block) ⇒ Object



27
28
29
# File 'lib/capybara_spa/capybara_dsl_ext.rb', line 27

def ignoring_angular(&block)
  ignoring_single_page_app(&block)
end

#ignoring_single_page_app(&block) ⇒ Object



31
32
33
34
35
36
# File 'lib/capybara_spa/capybara_dsl_ext.rb', line 31

def ignoring_single_page_app(&block)
  @ignoring_single_page_app = true
  yield
ensure
  @ignoring_single_page_app = false
end

#pageObject



5
6
7
8
# File 'lib/capybara_spa/capybara_dsl_ext.rb', line 5

def page
  wait_until_single_page_app_is_found unless @ignoring_single_page_app
  Capybara.current_session
end

#wait_until_single_page_app_is_foundObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/capybara_spa/capybara_dsl_ext.rb', line 10

def wait_until_single_page_app_is_found
  return if CapybaraSpa.single_page_app_found

  single_page_app_found = false

  loop do
    Capybara.current_session.visit('/')
    app_tag = CapybaraSpa.app_tag
    single_page_app_found = Capybara.current_session.evaluate_script <<-JAVASCRIPT
      document.getElementsByTagName('#{app_tag}').length === 1
    JAVASCRIPT
    CapybaraSpa.single_page_app_found = single_page_app_found
    break if CapybaraSpa.single_page_app_found
    sleep 0.25
  end
end