Sha256: 3ee7e3a7cffb226d381b6ddbbf1d624b4477d3d2a5a8afb74ce4a69a81efacad

Contents?: true

Size: 1.01 KB

Versions: 3

Compression:

Stored size: 1.01 KB

Contents

module Helpers
  def run_js_specs(component, spec, lang = nil)
    url = "/components/#{component}?spec=#{spec}"
    url << "&locale=#{lang}" if lang

    visit url

    # Wait while the test is running
    wait_for_javascript

    assert_mocha_results
  end

  def wait_for_javascript
    start = Time.now
    loop do
      done = page.execute_script(<<-JS)
      return Netzke.mochaDone;
      JS

      done ? break : sleep(0.1)

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

  def restore_locale
    visit "/components/Localization?locale=en"
  end

  def assert_mocha_results
    result = page.execute_script(<<-JS)
      return Netzke.mochaRunner.stats;
    JS

    if result["failures"].to_i > 0 && result["tests"].to_i > 0
      sleep 10
      raise "Mocha spec failed"
    end

    pending = result["pending"].to_i
    puts "WARNING: #{pending} pending Mocha #{'spec'.pluralize(pending)}" if pending > 0
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
netzke-workspace-0.10.2 spec/support/helpers.rb
netzke-workspace-0.10.1 spec/support/helpers.rb
netzke-workspace-0.10.0 spec/support/helpers.rb