[rspec-users] Testing HAML in helper rspec

Jim Morris ml at e4net.com
Thu Jul 3 12:57:58 EDT 2008


Thought I'd post this under its own heading so others can find it.

Thanks to David for the pointers to solve this.

Here is the incantation needed to use HAML 2.0 under RSpec 1.1.5 (Needs the .5 for a fix)

# application_helper_spec.rb under spec/helpers
...

before :each do
      helper.extend Haml
      helper.extend Haml::Helpers
      helper.send :init_haml_helpers
    end

    it "should display flash" do
      for name in [:notice, :warning, :error]
        flash[name]= "flash #{name.to_s} message"
        helper.capture_haml{
          helper.display_flash
        }.should match(/<div class='#{name.to_s}'>\s*#{flash[name]}\s*<\/div>/)
        flash[name]= nil
      end
    end

...

Which tests this in application_helpers.rb


   def display_flash
     for name in [:notice, :warning, :error]
       if flash[name]
         haml_tag :div, flash[name], {:class => name.to_s}
       end
     end
     nil
   end

I also updated my blog post on this topic to cover the new syntax...

http://blog.wolfman.com/articles/2007/07/14/using-rspec-to-test-haml-helpers

-- 
Jim Morris, http://blog.wolfman.com


More information about the rspec-users mailing list