Files
nairobi/spec/shared/models/acts_as_imageable.rb
Javi Martín 04585d289c Remove not-so-precise attachments test
We were testing the URL of the image changes to `missing.png`, but
actually that's confusing because the image record is now invalid and so
its changes can't be saved. That means that, when rendered in the
browser, the image won't render the `missing.png` image but will try to
render the destroyed one.

If we want to render the `missing.png` image when the attachment has
been destroyed, we need to remove the attachment presence validation or
change the `url` method so it detects when an attachment is missing.
2021-09-24 16:36:35 +02:00

62 lines
1.5 KiB
Ruby

shared_examples "acts as imageable" do |imageable_factory|
let!(:image) { build(:image, imageable_factory.to_sym) }
it "is valid" do
expect(image).to be_valid
end
describe "file extension" do
it "is not valid with '.png' extension" do
image.attachment = File.new("spec/fixtures/files/clippy.png")
expect(image).not_to be_valid
expect(image.errors[:attachment].size).to eq(1)
end
it "is not valid with '.gif' extension" do
image.attachment = File.new("spec/fixtures/files/clippy.gif")
expect(image).not_to be_valid
expect(image.errors[:attachment].size).to eq(1)
end
it "is valid with '.jpg' extension" do
image.attachment = File.new("spec/fixtures/files/clippy.jpg")
expect(image).to be_valid
end
end
describe "image dimmessions" do
it "is valid when image dimmessions are 475X475 at least" do
expect(image).to be_valid
end
it "is not valid when image dimmensions are smaller than 475X475" do
image.attachment = File.new("spec/fixtures/files/logo_header.jpg")
expect(image).not_to be_valid
end
end
describe "title" do
it "is not valid when correct image attached but no image title provided" do
image.title = ""
expect(image).not_to be_valid
end
it "is not valid when image title is too short" do
image.title = "a" * 3
expect(image).not_to be_valid
end
it "is not valid when image title is too long" do
image.title = "a" * 81
expect(image).not_to be_valid
end
end
end