diff options
Diffstat (limited to 'spec/support/helpers/html_escaped_helpers.rb')
-rw-r--r-- | spec/support/helpers/html_escaped_helpers.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/support/helpers/html_escaped_helpers.rb b/spec/support/helpers/html_escaped_helpers.rb index 7f6825e9598..7cbea7e7428 100644 --- a/spec/support/helpers/html_escaped_helpers.rb +++ b/spec/support/helpers/html_escaped_helpers.rb @@ -21,4 +21,35 @@ module HtmlEscapedHelpers match_data end + + # Checks if +content+ contains HTML escaped tags and raises an exception + # if it does. + # + # See #match_html_escaped_tags for details. + def ensure_no_html_escaped_tags!(content, example) + match_data = match_html_escaped_tags(content) + return unless match_data + + # Truncate + pre_match = match_data.pre_match.last(50) + match = match_data[0] + post_match = match_data.post_match.first(50) + + string = "#{pre_match}«#{match}»#{post_match}" + + raise <<~MESSAGE + The following string contains HTML escaped tags: + + #{string} + + Please consider using `.html_safe`. + + This check can be disabled via: + + it #{example.description.inspect}, :skip_html_escaped_tags_check do + ... + end + + MESSAGE + end end |