Module: Netzke::Testing::Helpers

Defined in:
lib/netzke/testing/helpers.rb

Instance Method Summary collapse

Instance Method Details

#assert_mocha_results(stop_on_error = false) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/netzke/testing/helpers.rb', line 31

def assert_mocha_results(stop_on_error = false)
  result = page.execute_script("    var runner = Netzke.mochaRunner;\n    var errors = [];\n    Ext.Array.each(runner.suite.suites[0].tests, function(t) { if (t.err) errors.push([t.title, t.err.toString()]) });\n    return {\n      test: runner.test.title,\n      success: runner.stats.failures == 0 && runner.stats.tests !=0,\n      errors: errors\n    }\n  JS\n\n  if !result[\"success\"]\n    sleep 1.year if stop_on_error\n\n    errors = result[\"errors\"].each_with_index.map do |(title, error), i|\n      \"\#{i+1}) in '\#{title}':\\n\#{error}\\n\"\n    end\n\n    raise MochaSpecsError, errors.join\n  end\nend\n")

#run_mocha_spec(path, options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/netzke/testing/helpers.rb', line 4

def run_mocha_spec(path, options = {})
  @component = options[:component] || path.camelcase
  locale = options[:locale]
  url = netzke_components_path(class: @component, spec: path)
  url << "&locale=#{locale}" if locale

  visit url

  wait_for_javascript(options[:stop_on_error])

  assert_mocha_results(options[:stop_on_error])
end

#wait_for_javascript(stop_on_error = false) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/netzke/testing/helpers.rb', line 17

def wait_for_javascript(stop_on_error = false)
  start = Time.now
  loop do
    page.execute_script("return Netzke.mochaDone;") ? break : sleep(0.1)

    # no specs are supposed to run longer than 100 seconds
    raise "Timeout running JavaScript specs for #{@component}" if Time.now > start + 100.seconds
  end

rescue Selenium::WebDriver::Error::JavascriptError => e
  sleep 1.year if stop_on_error
  raise e
end