Title: Sustainable Web Development with Ruby on Rails: Regex incorrect (testing Helpers section)
This code fails:
“# test/helpers/application_helper_test.rb
class ApplicationHelperTest < ActionView::TestCase
test “styled_widget_id” do
rendered_component = styled_widget_id(“1.23”)
→
→ regexp = %r{
→ <span # match a span tag
→ [^>]* # ignore anything that isn’t >
→ > # match the > to close the opening tag
→ .* # anything at all in here (e.g. other tags)
→ 1.23 # the widget ID we expect, escaping the dot
→ .* # anything after it (e.g. other tags)
→ # closing span tag
→ }x
assert_match regexp, rendered_component
assert rendered_component.html_safe?
end
end
The line:
→ [^>]* # ignore anything that isn’t >
should be:
→ .* # ignore anything that isn’t >
I did notice that copying and pasting from the PDF doesn’t copy the regular expression properly. Unfortunately, the tools I use to build the book result in weird uncopyable code blocks.
Can you try copying the code straight from the .zip files and see what happens?
Well that’s embarrassing…
I copied from the book again into a small test program (versus my previous test into the code for the widgets app), and it worked!
I must have had a typo.
However I did notice and forgot to mention that in the book there is a mistake in the line: