Extract constant to configure valid mime types
This way it'll be possible to overwrite the valid mime types in a custom model.
This commit is contained in:
@@ -11,10 +11,12 @@ class SiteCustomization::Image < ApplicationRecord
|
||||
"logo_email" => [400, 80]
|
||||
}.freeze
|
||||
|
||||
VALID_MIME_TYPES = %w[image/jpeg image/png].freeze
|
||||
|
||||
has_attachment :image
|
||||
|
||||
validates :name, presence: true, uniqueness: true, inclusion: { in: ->(*) { VALID_IMAGES.keys }}
|
||||
validates :image, file_content_type: { allow: ["image/png", "image/jpeg"], if: -> { image.attached? }}
|
||||
validates :image, file_content_type: { allow: ->(*) { VALID_MIME_TYPES }, if: -> { image.attached? }}
|
||||
validate :check_image
|
||||
|
||||
def self.all_images
|
||||
|
||||
@@ -44,4 +44,18 @@ describe SiteCustomization::Image do
|
||||
expect(map).not_to be_valid
|
||||
end
|
||||
end
|
||||
|
||||
it "dynamically validates the valid mime types" do
|
||||
stub_const("#{SiteCustomization::Image}::VALID_MIME_TYPES", ["image/gif"])
|
||||
|
||||
gif = build(:site_customization_image,
|
||||
name: "logo_header",
|
||||
image: fixture_file_upload("logo_header.gif"))
|
||||
expect(gif).to be_valid
|
||||
|
||||
png = build(:site_customization_image,
|
||||
name: "logo_header",
|
||||
image: fixture_file_upload("logo_header.png"))
|
||||
expect(png).not_to be_valid
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user