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
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to