Steps to reproduce
require "minitest/autorun"
require "json"
class DumpTest < Minitest::Test
def test_dump_duplicate_key_hash
assert_equal "{\"a\":5,\"c\":{\"b\":6}}", JSON.dump({ 'a' => 1, a: 5, c: { 'b' => 2, b: 6 } })
end
end
Expected behaviour
Test case should pass
Actual behavior
Run options: --seed 18012
# Running:
F
Failure:
DumpTest#test_dump_duplicate_key_hash [nano-example.rb:7]:
--- expected
+++ actual
@@ -1 +1 @@
-"{\"a\":5,\"c\":{\"b\":6}}"
+"{\"a\":1,\"a\":5,\"c\":{\"b\":2,\"b\":6}}"
bin/rails test nano-example.rb:6
Finished in 0.007499s, 133.3511 runs/s, 133.3511 assertions/s.
1 runs, 1 assertions, 1 failures, 0 errors, 0 skips
System configuration
Ruby version: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23], ruby 3.2.0, ruby 2.7.8
Same issue got reported in Rails ActiveSupport encode as well. Check it out here: #50481
cc: @byroot @hsbt
Steps to reproduce
Expected behaviour
Test case should pass
Actual behavior
System configuration
Ruby version:
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23],ruby 3.2.0,ruby 2.7.8Same issue got reported in Rails ActiveSupport encode as well. Check it out here: #50481
cc: @byroot @hsbt