Sha256: 6ff014192e26b0a9de6a8b71272eceb623173ac09c54eaa672b9fbb411d6e8ca
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
module Netzke::Testing::Helpers 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 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 def assert_mocha_results(stop_on_error = false) result = page.execute_script(<<-JS) var runner = Netzke.mochaRunner; var errors = []; Ext.Array.each(runner.suite.suites[0].tests, function(t) { if (t.err) errors.push([t.title, t.err.toString()]) }); return { test: runner.test.title, success: runner.stats.failures == 0 && runner.stats.tests !=0, error: runner.test.err && runner.test.err.toString(), errors: errors } JS if !result["success"] sleep 1.year if stop_on_error errors = result["errors"].each_with_index.map do |(title, error), i| "#{i+1}) #{title}\n#{error}\n\n" end raise "Failures:\n#{errors.join}" raise "Test failed: #{result["test"]}\n#{result["error"]}" end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
netzke-testing-1.0.0.0.pre | lib/netzke/testing/helpers.rb |
netzke-testing-0.12.3 | lib/netzke/testing/helpers.rb |
netzke-testing-0.12.2 | lib/netzke/testing/helpers.rb |