Module: Browser::RSpecHelpers

Defined in:
lib/opal/jquery/rspec.rb

Overview

When testing (using rspec), this module provides some helper methods to try and make testing a little easier.

Usage

Simply require this file somewher (usualy in spec_helper.rb):

require 'application'
require 'opal-rspec'
require 'opal/jquery/rspec'

Once required, the module is registered with rspec for all example groups.

Adding html to DOM

It is often convenient to have some HTML code ready in the dom for testing. This helper method adds the given html string. More so, the html is then removed at the end of each test. This is cruicial as it ensures that the specified html code is inserted before each test, therefore ensuring that html code changed by a test will not affect any other tests in the same scope.

describe "Check DOM code" do
  html '<div id="foo"></div>'

  it "foo should exist" do
    expect(Document['#foo']).to_not be_empty
  end
end

Instance Method Summary collapse

Instance Method Details

#html(html_string = '') ⇒ Object

Add some html code to the body tag ready for testing. This will be added before each test, then removed after each test. It is convenient for adding html setup quickly. The code is wrapped inside a div, which is directly inside the body element.

describe "DOM feature" do
  html <<-HTML
    <div id="foo"></div>
  HTML

  it "foo should exist" do
    Document["#foo"]
  end
end

Parameters:

  • html_string (String) (defaults to: '')

    html content to add


50
51
52
53
54
55
56
57
58
59
# File 'lib/opal/jquery/rspec.rb', line 50

def html(html_string='')
  html = %Q{<div id="opal-jquery-test-div">#{html_string}</div>}

  before do
    @_spec_html = Element.parse(html)
    @_spec_html.append_to_body
  end

  after { @_spec_html.remove }
end