From b698a1a34583383eb4c77dd5de3eb58450923c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Fri, 5 Jun 2020 12:13:01 -0400 Subject: [PATCH] Digest the environment and digest before packing the hexdigest Closes #683 Closes #682 --- lib/sprockets/asset.rb | 2 +- test/test_environment.rb | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/sprockets/asset.rb b/lib/sprockets/asset.rb index 43fbe4012..bb204b854 100644 --- a/lib/sprockets/asset.rb +++ b/lib/sprockets/asset.rb @@ -135,7 +135,7 @@ def hexdigest # Pubic: ETag String of Asset. def etag - DigestUtils.pack_hexdigest(environment_version + digest) + DigestUtils.hexdigest(environment_version.to_s + digest) end # Public: Returns String base64 digest of source. diff --git a/test/test_environment.rb b/test/test_environment.rb index aef040884..0ae8611c0 100644 --- a/test/test_environment.rb +++ b/test/test_environment.rb @@ -735,7 +735,17 @@ def setup test "changing version changes the etag of the asset" do old_asset_etag = @env["gallery.js"].etag @env.version = 'v2' - refute_equal old_asset_etag, @env["gallery.js"].etag + new_asset_etag = @env["gallery.js"].etag + refute_equal old_asset_etag, new_asset_etag + assert_equal old_asset_etag.size, new_asset_etag.size + end + + test "changing version to nil does not break etag" do + old_asset_etag = @env["gallery.js"].etag + @env.version = nil + new_asset_etag = @env["gallery.js"].etag + assert_equal old_asset_etag, new_asset_etag + assert_equal old_asset_etag.size, new_asset_etag.size end test "changing version does not changes the digest of the asset" do