From b6d6e2514889ad576c23b8783127e0c346db0d43 Mon Sep 17 00:00:00 2001 From: Roque Pinel <1685896+repinel@users.noreply.github.com> Date: Mon, 30 Mar 2020 16:42:09 -0400 Subject: [PATCH] Fix `unescape_js` to match changes in Action View Unescapes dollar signs and backticks added by rails/rails@033a738817abd6e446e1b320cb7d1a5c15224e9a --- lib/jquery/assert_select.rb | 2 ++ test/assert_select_jquery_test.rb | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/lib/jquery/assert_select.rb b/lib/jquery/assert_select.rb index debf99d1..1d82fb53 100644 --- a/lib/jquery/assert_select.rb +++ b/lib/jquery/assert_select.rb @@ -124,6 +124,8 @@ def unescape_js(js_string) unescaped.gsub!('\n', "\n") unescaped.gsub!('\076', '>') unescaped.gsub!('\074', '<') + unescaped.gsub!(/\\\$/, '$') + unescaped.gsub!(/\\`/, '`') # js encodes non-ascii characters. unescaped.gsub!(PATTERN_UNICODE_ESCAPED_CHAR) {|u| [$1.hex].pack('U*')} unescaped diff --git a/test/assert_select_jquery_test.rb b/test/assert_select_jquery_test.rb index 90c6dcb0..632b0c2d 100644 --- a/test/assert_select_jquery_test.rb +++ b/test/assert_select_jquery_test.rb @@ -23,6 +23,8 @@ class AssertSelectJQueryTest < ActiveSupport::TestCase // without semicolon $("#browser_cart").hide("blind", 1000) + + $('#item').html('
\\`Total\\`: \\$12.34
'); JS setup do @@ -43,6 +45,10 @@ def test_target_as_receiver assert_select_jquery :remove, "#cart tr:not(.total_line) > *" assert_select_jquery :remove, "[href|=\"val\"][href$=\"val\"][href^=\"val\"]" assert_select_jquery :remove, "tr + td, li" + + assert_select_jquery :html, '#item' do + assert_select 'span', '`Total`: $12.34' + end end assert_raise Minitest::Assertion, "No JQuery call matches [:show, :some_wrong]" do