Clipe de papel + RSpec: validação content_type
estou usandoPaperclip
no meu aplicativo Rails para anexarimages
. Eu declarei validação paracontent_type
no meu modelo como
validates_attachment :image,
:content_type => { :content_type => ["image/jpg", "image/gif", "image/png"] }
Eu tenho dois exemplos, um com uma imagem válida e outro com uma imagem inválida
Para uma imagem inválida, acabei de renomear um.txt
arquivo para um.png
it "Image is valid" do
image = File.new("#{Rails.root}/spec/support/right.png")
expect(FactoryGirl.build(:pin, image: image)).to be_valid
end
it "Image is invalid" do
image = File.new("#{Rails.root}/spec/support/wrong.png")
expect(FactoryGirl.build(:pin, image: image)).to have(1).errors_on(:image_content_type)
end
Eu esperava que meus dois exemplos fossem executados com sucesso. MAS, meu segundo exemplo falha. Não recebo nenhum erro para content_type ofwrong.png
.
Eu pensei que o Paperclipcontent_type
a validação realmente verifica o formato do arquivo (codificação de dados binários) de um arquivo carregado. Mas parece que aqui, está apenas verificando a extensão do arquivo. Essa validação verifica apenas a extensão de um arquivo carregado?
Talvez eu esteja perdendo alguma coisa aqui (configuração?). Existe alguma outra validação disponível no Paperclip para conseguir isso? Ou devo optar por um validador personalizado nesse caso?