From 637f872f3414bf221cc6cea1f1e025cf82196f05 Mon Sep 17 00:00:00 2001 From: Karol Date: Mon, 6 Feb 2023 21:45:01 +0100 Subject: [PATCH] add file_extension validation for file_type --- app/models/file_type.rb | 1 + spec/factories/file_type.rb | 1 + spec/models/file_type_spec.rb | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/app/models/file_type.rb b/app/models/file_type.rb index 6fd44048..c1dec216 100644 --- a/app/models/file_type.rb +++ b/app/models/file_type.rb @@ -26,6 +26,7 @@ class FileType < ApplicationRecord validates :indent_size, presence: true, unless: :binary? validates :name, presence: true validates :renderable, inclusion: [true, false] + validates :file_extension, length: { minimum:0, allow_nil: false} %i[audio compressed csv excel image pdf powerpoint video word].each do |type| define_method("#{type}?") do diff --git a/spec/factories/file_type.rb b/spec/factories/file_type.rb index 922bb52b..7001bcac 100644 --- a/spec/factories/file_type.rb +++ b/spec/factories/file_type.rb @@ -186,6 +186,7 @@ FactoryBot.define do factory :makefile, class: 'FileType' do created_by_admin editor_mode { 'ace/mode/makefile' } + file_extension { '' } executable indent_size { 2 } name { 'Makefile' } diff --git a/spec/models/file_type_spec.rb b/spec/models/file_type_spec.rb index 0fc9c043..f4ccedc5 100644 --- a/spec/models/file_type_spec.rb +++ b/spec/models/file_type_spec.rb @@ -54,4 +54,10 @@ describe FileType do it 'validates the presence of a user' do expect(file_type.errors[:user]).to be_present end + + it 'validates the presence of the file_extension' do + expect(file_type.errors[:file_extension]).to be_present + file_type.update(file_extension: '') + expect(file_type.errors[:file_extension]).to be_blank + end end