reenable validator on piece_justificative

This commit is contained in:
clemkeirua 2020-07-08 14:46:31 +02:00 committed by Keirua (Rebase PR Action)
parent c5af4110a4
commit 8711e8f911
3 changed files with 27 additions and 17 deletions

View file

@ -33,12 +33,9 @@ class Champs::PieceJustificativeChamp < Champ
"image/jpeg"
]
# TODO: once we're running on Rails 6, re-enable this validation.
# See https://github.com/betagouv/demarches-simplifiees.fr/issues/4926
#
# validates :piece_justificative_file,
# content_type: ACCEPTED_FORMATS,
# size: { less_than: MAX_SIZE }
validates :piece_justificative_file,
content_type: ACCEPTED_FORMATS,
size: { less_than: MAX_SIZE }
before_save :update_skip_pj_validation
@ -58,6 +55,28 @@ class Champs::PieceJustificativeChamp < Champ
piece_justificative_file.filename.to_s if piece_justificative_file.attached?
end
def piece_justificative_file_errors
errors = []
if piece_justificative_file.attached? && piece_justificative_file.previous_changes.present?
if piece_justificative_file.blob.byte_size > MAX_SIZE
errors << "Le fichier #{piece_justificative_file.filename} est trop lourd, il doit faire au plus #{MAX_SIZE.to_s(:human_size, precision: 2)}"
end
if !piece_justificative_file.blob.content_type.in?(ACCEPTED_FORMATS)
errors << "Le fichier #{piece_justificative_file.filename} est dans un format que nous n'acceptons pas"
end
# FIXME: add Clamav check
end
if errors.present?
piece_justificative_file.purge_later
end
errors
end
def for_api
if piece_justificative_file.attached? && (piece_justificative_file.virus_scanner.safe? || piece_justificative_file.virus_scanner.pending?)
piece_justificative_file.service_url

View file

@ -200,12 +200,7 @@ feature 'The user' do
expect(page).to have_text('RIB.pdf')
end
# TODO: once we're running on Rails 6, re-enable the validator on PieceJustificativeChamp,
# and unmark this spec as pending.
#
# See piece_justificative_champ.rb
# See https://github.com/betagouv/demarches-simplifiees.fr/issues/4926
scenario 'add an invalid attachment', js: true, pending: true do
scenario 'add an invalid attachment', js: true do
log_in(user, procedure_with_pjs)
fill_individual

View file

@ -16,11 +16,7 @@ describe Champs::PieceJustificativeChamp do
end
end
# TODO: once we're running on Rails 6, re-enable the PieceJustificativeChamp validator,
# and re-enable this spec.
#
# See https://github.com/betagouv/demarches-simplifiees.fr/issues/4926
describe "validations", pending: true do
describe "validations" do
subject(:champ_pj) { build(:champ_piece_justificative) }
it { is_expected.to validate_size_of(:piece_justificative_file).less_than(Champs::PieceJustificativeChamp::MAX_SIZE) }