From 20509d725a424f623093a6a089fcdbbfce8977b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Gaya?= <sebastien.gaya@gmail.com> Date: Wed, 24 Nov 2021 11:17:40 +0100 Subject: [PATCH] variant service does not fail when format is missing --- app/services/variant_service.rb | 2 +- test/models/variant_service_test.rb | 44 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/app/services/variant_service.rb b/app/services/variant_service.rb index 395b8b2d7..40eca996a 100644 --- a/app/services/variant_service.rb +++ b/app/services/variant_service.rb @@ -55,7 +55,7 @@ class VariantService end end - transformations[:format] = @format if @format != @blob.filename.extension_without_delimiter + transformations[:format] = @format if @format.present? && @format != @blob.filename.extension_without_delimiter transformations end end diff --git a/test/models/variant_service_test.rb b/test/models/variant_service_test.rb index 62858b2e9..2f2d08636 100644 --- a/test/models/variant_service_test.rb +++ b/test/models/variant_service_test.rb @@ -31,6 +31,8 @@ class VariantServiceTest < ActiveSupport::TestCase # dan-gold_1000x500_crop_left.jpeg # dan-gold_1500x500_crop_left.jpeg # dan-gold_800x840_crop_left.jpeg + # dan-gold + # dan-gold_500x500 # Params tests @@ -155,6 +157,21 @@ class VariantServiceTest < ActiveSupport::TestCase assert_equal expected_params, variant_service.params end + test "params for dan-gold" do + blob = create_file_blob(filename: "dan-gold.jpeg") + expected_params = {} + variant_service = VariantService.compute(blob, 'dan-gold', nil) + assert_equal expected_params, variant_service.params + assert_nil variant_service.format + end + + test "params for dan-gold_500x500" do + blob = create_file_blob(filename: "dan-gold.jpeg") + expected_params = { size: '500x500' } + variant_service = VariantService.compute(blob, 'dan-gold_500x500', nil) + assert_equal expected_params, variant_service.params + end + # Transformations tests test "transformations for dan-gold.jpeg" do @@ -291,6 +308,20 @@ class VariantServiceTest < ActiveSupport::TestCase assert_equal expected_transformations, variant_service.transformations end + test "transformations for dan-gold" do + blob = create_file_blob(filename: "dan-gold.jpeg") + expected_transformations = {} + variant_service = VariantService.compute(blob, 'dan-gold', nil) + assert_equal expected_transformations, variant_service.transformations + end + + test "transformations for dan-gold_500x500" do + blob = create_file_blob(filename: "dan-gold.jpeg") + expected_transformations = { resize_to_limit: [500, 500] } + variant_service = VariantService.compute(blob, 'dan-gold_500x500', nil) + assert_equal expected_transformations, variant_service.transformations + end + # Variants tests test "variant for dan-gold.webp" do @@ -390,6 +421,19 @@ class VariantServiceTest < ActiveSupport::TestCase assert_equal expected_blob.checksum, image_checksum(image) end + test "variant for dan-gold" do + expected_blob = create_file_blob(filename: "dan-gold.jpeg") + image = load_image_from_variant_name(expected_blob.filename.base, format: nil) + assert_equal "JPEG", image.type + assert_equal expected_blob.checksum, image_checksum(image) + end + + test "variant for dan-gold_500x500" do + expected_blob = create_file_blob(filename: "dan-gold_500x500.jpeg") + image = load_image_from_variant_name(expected_blob.filename.base, format: nil) + assert_equal expected_blob.checksum, image_checksum(image) + end + private def create_file_blob(key: nil, filename: "dan-gold.jpeg", content_type: "image/jpeg", metadata: nil, service_name: nil, record: nil) -- GitLab