Skip to content

Commit 27292b7

Browse files
kozy4324marcoroth
authored andcommitted
Use JSON.generate instead of Hash#to_s for snapshot_key generation
Ruby 3.4 changed how Hash objects are inspected, which caused snapshot_key values generated via `Digest::MD5.hexdigest(source)` to differ between Ruby versions. As a result, tests were failing due to mismatched keys. To ensure a stable and Ruby-version-independent snapshot_key, this change replaces `hash.to_s` with `JSON.generate(hash)`. Reference: https://bugs.ruby-lang.org/issues/20433
1 parent 0ee1017 commit 27292b7

56 files changed

Lines changed: 5 additions & 4 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

test/snapshot_utils.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
require "fileutils"
77
require "readline"
88
require "digest"
9+
require "json"
910

1011
def ask?(prompt = "")
1112
Readline.readline("===> #{prompt}? (y/N) ", true).squeeze(" ").strip == "y"
@@ -24,14 +25,14 @@ def assert_compiled_snapshot(source, handler: ReActionView::Template::Handlers::
2425

2526
compiled_source = template.handler.call(template, source)
2627

27-
snapshot_key = {
28+
snapshot_key = JSON.generate({
2829
source: source,
2930
handler: handler,
3031
virtual_path: virtual_path,
3132
options: options,
3233
locals: locals,
3334
format: format,
34-
}.to_s
35+
})
3536

3637
assert_snapshot_matches(compiled_source, snapshot_key, mode: "compiled")
3738

@@ -59,14 +60,14 @@ def assert_evaluated_snapshot(source, ivars: {}, options: {}, handler: ReActionV
5960

6061
result = view_context.instance_eval(compiled_source).to_s
6162

62-
snapshot_key = {
63+
snapshot_key = JSON.generate({
6364
source: source,
6465
ivars: ivars,
6566
locals: locals,
6667
options: options,
6768
handler: handler,
6869
format: format
69-
}.to_s
70+
})
7071

7172
assert_snapshot_matches(result, snapshot_key, mode: "evaluated")
7273

test/snapshots/herb/template_handler_test/test_0001_rendering_for_non-html_formats_compiled_b027d3611e0749c6ac805f3168c0283e.txt renamed to test/snapshots/herb/template_handler_test/test_0001_rendering_for_non-html_formats_compiled_c8807cd353a32d3fe22cb57023da8f18.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0001_rendering_for_non-html_formats_evaluated_71f06febac58528e120225ef963810ed.txt renamed to test/snapshots/herb/template_handler_test/test_0001_rendering_for_non-html_formats_evaluated_466faf5aabad31cf3ab53a7d7a55323b.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0002_error_for_invalid_html_compiled_f220a3f39ac7d7adca10aee52ae53d26.txt renamed to test/snapshots/herb/template_handler_test/test_0002_error_for_invalid_html_compiled_3cbc2f9969e183772ad5deb4cf0166f0.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0002_error_for_invalid_html_evaluated_d2673f801903b3abc4919f4fef7798b7.txt renamed to test/snapshots/herb/template_handler_test/test_0002_error_for_invalid_html_evaluated_90bda078801ec604ddb029793b421979.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0003_template_with_expression_compiled_ea8a75717ba92b3052822ef533072b2d.txt renamed to test/snapshots/herb/template_handler_test/test_0003_template_with_expression_compiled_40e3b949384b06dd58f462a17aa0827b.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0003_template_with_expression_evaluated_d472018c1575fd4d3a03e0d488064ca8.txt renamed to test/snapshots/herb/template_handler_test/test_0003_template_with_expression_evaluated_5755eb02574392556786d75983285d19.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0004_link_to_with_block_compiled_f593aa1454865f4e26983c7722353d88.txt renamed to test/snapshots/herb/template_handler_test/test_0004_link_to_with_block_compiled_40217e77340228834673e9a7e119b890.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0004_link_to_with_block_evaluated_93c6bbd98ae521e404b40f20e22211e2.txt renamed to test/snapshots/herb/template_handler_test/test_0004_link_to_with_block_evaluated_1cb81512c6b3c5097e715c6799f75ea4.txt

File renamed without changes.

test/snapshots/herb/template_handler_test/test_0005_raw_and_regular_output_compiled_a4aa0edc0d75e235c0560d350ab55f35.txt renamed to test/snapshots/herb/template_handler_test/test_0005_raw_and_regular_output_compiled_ce838ee50a8780e359b0426fe5b6bfb4.txt

File renamed without changes.

0 commit comments

Comments
 (0)