aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-06-18 13:32:49 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-06-18 13:32:49 +0900
commitbd4f28a46dc3cafd00aabd7c7e6540b3d48593b2 (patch)
treeb101b24bdccbe4c12dd402c424834091ffad13bd /activerecord/test/cases
parent67a579419b275c4c982b02d9b6380cf4cbdaba20 (diff)
downloadrails-bd4f28a46dc3cafd00aabd7c7e6540b3d48593b2.tar.gz
rails-bd4f28a46dc3cafd00aabd7c7e6540b3d48593b2.tar.bz2
rails-bd4f28a46dc3cafd00aabd7c7e6540b3d48593b2.zip
Add a test case for #28754
A part for JSON was splitted from #28416 as #29273 and #29273 has already been merged. Closes #28754. Closes #27588. [Ryuta Kamizono & Bradley Priest]
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/json_shared_test_cases.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/activerecord/test/cases/json_shared_test_cases.rb b/activerecord/test/cases/json_shared_test_cases.rb
index 5aa41b9d6d..9a1c1c3f3f 100644
--- a/activerecord/test/cases/json_shared_test_cases.rb
+++ b/activerecord/test/cases/json_shared_test_cases.rb
@@ -169,6 +169,25 @@ module JSONSharedTestCases
assert_not json.changed?
end
+ def test_changes_in_place_ignores_key_order
+ json = klass.new
+ assert_not json.changed?
+
+ json.payload = { "three" => "four", "one" => "two" }
+ json.save!
+ json.reload
+
+ json.payload = { "three" => "four", "one" => "two" }
+ assert_not json.changed?
+
+ json.payload = [{ "three" => "four", "one" => "two" }, { "seven" => "eight", "five" => "six" }]
+ json.save!
+ json.reload
+
+ json.payload = [{ "three" => "four", "one" => "two" }, { "seven" => "eight", "five" => "six" }]
+ assert_not json.changed?
+ end
+
def test_changes_in_place_with_ruby_object
time = Time.now.utc
json = klass.create!(payload: time)