[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