106 lines
3.0 KiB
Ruby
106 lines
3.0 KiB
Ruby
require "rails_helper"
|
|
|
|
describe Attachable do
|
|
it "stores attachments for the default tenant in the default folder" do
|
|
file_path = build(:image).file_path
|
|
|
|
expect(file_path).to include "storage/"
|
|
expect(file_path).not_to include "storage//"
|
|
expect(file_path).not_to include "tenants"
|
|
end
|
|
|
|
it "stores tenant attachments in a folder for the tenant" do
|
|
allow(Tenant).to receive(:current_schema).and_return("image-master")
|
|
|
|
expect(build(:image).file_path).to include "storage/tenants/image-master/"
|
|
end
|
|
|
|
context "file size validation" do
|
|
it "is not applied when the image attachment has not changed" do
|
|
image = create(:image, :proposal_image)
|
|
|
|
expect(image.valid?).to be(true)
|
|
|
|
Setting["uploads.images.max_size"] = 0.1
|
|
|
|
expect(image.valid?).to be(true)
|
|
end
|
|
|
|
it "is applied when the image attachment changes" do
|
|
image = create(:image, :proposal_image)
|
|
|
|
expect(image.valid?).to be(true)
|
|
|
|
Setting["uploads.images.max_size"] = 0.1
|
|
image.attachment = Rack::Test::UploadedFile.new("spec/fixtures/files/clippy.png")
|
|
|
|
expect(image.valid?).to be(false)
|
|
end
|
|
|
|
it "is not applied when the document attachment has not changed" do
|
|
document = create(:document, :proposal_document)
|
|
|
|
expect(document.valid?).to be(true)
|
|
|
|
Setting["uploads.documents.max_size"] = 0.1
|
|
|
|
expect(document.valid?).to be(true)
|
|
end
|
|
|
|
it "is applied when the document attachment changes" do
|
|
document = create(:document, :proposal_document)
|
|
|
|
expect(document.valid?).to be(true)
|
|
|
|
Setting["uploads.documents.max_size"] = 0.1
|
|
document.attachment = Rack::Test::UploadedFile.new("spec/fixtures/files/clippy.pdf")
|
|
|
|
expect(document.valid?).to be(false)
|
|
end
|
|
end
|
|
|
|
context "file content types validation" do
|
|
it "is not applied when the image attachment has not changed" do
|
|
image = create(:image, :proposal_image)
|
|
|
|
expect(image.valid?).to be(true)
|
|
|
|
Setting["uploads.images.content_types"] = "image/gif"
|
|
|
|
expect(image.valid?).to be(true)
|
|
end
|
|
|
|
it "is applied when the image attachment changes" do
|
|
image = create(:image, :proposal_image)
|
|
|
|
expect(image.valid?).to be(true)
|
|
|
|
Setting["uploads.images.content_types"] = "image/gif"
|
|
image.attachment = Rack::Test::UploadedFile.new("spec/fixtures/files/clippy.png")
|
|
|
|
expect(image.valid?).to be(false)
|
|
end
|
|
|
|
it "is not applied when the document attachment has not changed" do
|
|
document = create(:document, :proposal_document)
|
|
|
|
expect(document.valid?).to be(true)
|
|
|
|
Setting["uploads.documents.content_types"] = "text/csv"
|
|
|
|
expect(document.valid?).to be(true)
|
|
end
|
|
|
|
it "is applied when the document attachment changes" do
|
|
document = create(:document, :proposal_document)
|
|
|
|
expect(document.valid?).to be(true)
|
|
|
|
Setting["uploads.documents.content_types"] = "text/csv"
|
|
document.attachment = Rack::Test::UploadedFile.new("spec/fixtures/files/clippy.pdf")
|
|
|
|
expect(document.valid?).to be(false)
|
|
end
|
|
end
|
|
end
|