aboutsummaryrefslogtreecommitdiffstats
path: root/test/collectors/test_sql_string.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2017-07-21 09:23:24 -0400
committerSean Griffin <sean@seantheprogrammer.com>2017-07-21 09:23:24 -0400
commit7ca5c37f484edebd169e4136331500d4b5c31cbe (patch)
tree4d894128c2336a1611d0296ff42ee9184b10dda6 /test/collectors/test_sql_string.rb
parent53521a9e39b9d8af4165d7703c36dc905f1f8f67 (diff)
downloadrails-7ca5c37f484edebd169e4136331500d4b5c31cbe.tar.gz
rails-7ca5c37f484edebd169e4136331500d4b5c31cbe.tar.bz2
rails-7ca5c37f484edebd169e4136331500d4b5c31cbe.zip
Ensure `ToSql` collector returns a UTF-8 string
Switching from `''.dup` to `String.new` had the side effect of changing the encoding on Ruby 2.4 and later. Oddly, `String.new(encoding: Encoding::UTF_8)` is significantly slower than `''.dup`. This seems like a bug in Ruby, but not something we're going to address right now. A test has been added to ensure this regression doesn't occur again.
Diffstat (limited to 'test/collectors/test_sql_string.rb')
-rw-r--r--test/collectors/test_sql_string.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/collectors/test_sql_string.rb b/test/collectors/test_sql_string.rb
index 8651296ff8..debec8e9c9 100644
--- a/test/collectors/test_sql_string.rb
+++ b/test/collectors/test_sql_string.rb
@@ -33,6 +33,14 @@ module Arel
sql = collector.compile ["hello", "world"]
assert_equal 'SELECT FROM "users" WHERE "users"."age" = ? AND "users"."name" = ?', sql
end
+
+ def test_returned_sql_uses_utf8_encoding
+ bv = Nodes::BindParam.new(nil)
+ collector = collect ast_with_binds bv
+
+ sql = collector.compile ["hello", "world"]
+ assert_equal sql.encoding, Encoding::UTF_8
+ end
end
end
end