mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 01:17:16 +08:00
DEV: Apply syntax_tree formatting to spec/*
This commit is contained in:
@ -13,9 +13,7 @@ RSpec.describe ExternalUploadManager do
|
||||
let!(:external_upload_stub) { Fabricate(:image_external_upload_stub, created_by: user) }
|
||||
let(:s3_bucket_name) { SiteSetting.s3_upload_bucket }
|
||||
|
||||
subject do
|
||||
ExternalUploadManager.new(external_upload_stub)
|
||||
end
|
||||
subject { ExternalUploadManager.new(external_upload_stub) }
|
||||
|
||||
before do
|
||||
SiteSetting.authorized_extensions += "|pdf"
|
||||
@ -48,14 +46,14 @@ RSpec.describe ExternalUploadManager do
|
||||
|
||||
describe "#transform!" do
|
||||
context "when stubbed upload is < DOWNLOAD_LIMIT (small enough to download + generate sha)" do
|
||||
let!(:external_upload_stub) { Fabricate(:image_external_upload_stub, created_by: user, filesize: object_size) }
|
||||
let!(:external_upload_stub) do
|
||||
Fabricate(:image_external_upload_stub, created_by: user, filesize: object_size)
|
||||
end
|
||||
let(:object_size) { 1.megabyte }
|
||||
let(:object_file) { logo_file }
|
||||
|
||||
context "when the download of the s3 file fails" do
|
||||
before do
|
||||
FileHelper.stubs(:download).returns(nil)
|
||||
end
|
||||
before { FileHelper.stubs(:download).returns(nil) }
|
||||
|
||||
it "raises an error" do
|
||||
expect { subject.transform! }.to raise_error(ExternalUploadManager::DownloadFailedError)
|
||||
@ -63,9 +61,7 @@ RSpec.describe ExternalUploadManager do
|
||||
end
|
||||
|
||||
context "when the upload is not in the created status" do
|
||||
before do
|
||||
external_upload_stub.update!(status: ExternalUploadStub.statuses[:uploaded])
|
||||
end
|
||||
before { external_upload_stub.update!(status: ExternalUploadStub.statuses[:uploaded]) }
|
||||
|
||||
it "raises an error" do
|
||||
expect { subject.transform! }.to raise_error(ExternalUploadManager::CannotPromoteError)
|
||||
@ -86,7 +82,14 @@ RSpec.describe ExternalUploadManager do
|
||||
SiteSetting.max_image_size_kb = 1
|
||||
upload = subject.transform!
|
||||
expect(upload.errors.full_messages).to include(
|
||||
"Filesize " + I18n.t("upload.images.too_large_humanized", max_size: ActiveSupport::NumberHelper.number_to_human_size(SiteSetting.max_image_size_kb.kilobytes))
|
||||
"Filesize " +
|
||||
I18n.t(
|
||||
"upload.images.too_large_humanized",
|
||||
max_size:
|
||||
ActiveSupport::NumberHelper.number_to_human_size(
|
||||
SiteSetting.max_image_size_kb.kilobytes,
|
||||
),
|
||||
),
|
||||
)
|
||||
end
|
||||
|
||||
@ -94,7 +97,7 @@ RSpec.describe ExternalUploadManager do
|
||||
SiteSetting.authorized_extensions = ""
|
||||
upload = subject.transform!
|
||||
expect(upload.errors.full_messages).to include(
|
||||
"Original filename " + I18n.t("upload.unauthorized", authorized_extensions: "")
|
||||
"Original filename " + I18n.t("upload.unauthorized", authorized_extensions: ""),
|
||||
)
|
||||
end
|
||||
end
|
||||
@ -102,7 +105,13 @@ RSpec.describe ExternalUploadManager do
|
||||
context "when the upload does get changed by the UploadCreator" do
|
||||
let(:object_file) { file_from_fixtures("should_be_jpeg.heic", "images") }
|
||||
let(:object_size) { 1.megabyte }
|
||||
let(:external_upload_stub) { Fabricate(:image_external_upload_stub, original_filename: "should_be_jpeg.heic", filesize: object_size) }
|
||||
let(:external_upload_stub) do
|
||||
Fabricate(
|
||||
:image_external_upload_stub,
|
||||
original_filename: "should_be_jpeg.heic",
|
||||
filesize: object_size,
|
||||
)
|
||||
end
|
||||
|
||||
it "creates a new upload in s3 (not copy) and deletes the original stubbed upload" do
|
||||
upload = subject.transform!
|
||||
@ -121,7 +130,9 @@ RSpec.describe ExternalUploadManager do
|
||||
let(:client_sha1) { "blahblah" }
|
||||
|
||||
it "raises an error, deletes the stub" do
|
||||
expect { subject.transform! }.to raise_error(ExternalUploadManager::ChecksumMismatchError)
|
||||
expect { subject.transform! }.to raise_error(
|
||||
ExternalUploadManager::ChecksumMismatchError,
|
||||
)
|
||||
expect(ExternalUploadStub.exists?(id: external_upload_stub.id)).to eq(false)
|
||||
|
||||
bucket = @fake_s3.bucket(SiteSetting.s3_upload_bucket)
|
||||
@ -130,7 +141,9 @@ RSpec.describe ExternalUploadManager do
|
||||
|
||||
it "does not delete the stub if enable_upload_debug_mode" do
|
||||
SiteSetting.enable_upload_debug_mode = true
|
||||
expect { subject.transform! }.to raise_error(ExternalUploadManager::ChecksumMismatchError)
|
||||
expect { subject.transform! }.to raise_error(
|
||||
ExternalUploadManager::ChecksumMismatchError,
|
||||
)
|
||||
external_stub = ExternalUploadStub.find(external_upload_stub.id)
|
||||
expect(external_stub.status).to eq(ExternalUploadStub.statuses[:failed])
|
||||
|
||||
@ -141,16 +154,18 @@ RSpec.describe ExternalUploadManager do
|
||||
end
|
||||
|
||||
context "when the downloaded file size does not match the expected file size for the upload stub" do
|
||||
before do
|
||||
external_upload_stub.update!(filesize: 10)
|
||||
end
|
||||
before { external_upload_stub.update!(filesize: 10) }
|
||||
|
||||
after { Discourse.redis.flushdb }
|
||||
|
||||
it "raises an error, deletes the file immediately, and prevents the user from uploading external files for a few minutes" do
|
||||
expect { subject.transform! }.to raise_error(ExternalUploadManager::SizeMismatchError)
|
||||
expect(ExternalUploadStub.exists?(id: external_upload_stub.id)).to eq(false)
|
||||
expect(Discourse.redis.get("#{ExternalUploadManager::BAN_USER_REDIS_PREFIX}#{external_upload_stub.created_by_id}")).to eq("1")
|
||||
expect(
|
||||
Discourse.redis.get(
|
||||
"#{ExternalUploadManager::BAN_USER_REDIS_PREFIX}#{external_upload_stub.created_by_id}",
|
||||
),
|
||||
).to eq("1")
|
||||
|
||||
bucket = @fake_s3.bucket(SiteSetting.s3_upload_bucket)
|
||||
expect(bucket.find_object(external_upload_stub.key)).to be_nil
|
||||
@ -171,10 +186,15 @@ RSpec.describe ExternalUploadManager do
|
||||
context "when stubbed upload is > DOWNLOAD_LIMIT (too big to download, generate a fake sha)" do
|
||||
let(:object_size) { 200.megabytes }
|
||||
let(:object_file) { pdf_file }
|
||||
let!(:external_upload_stub) { Fabricate(:attachment_external_upload_stub, created_by: user, filesize: object_size) }
|
||||
let!(:external_upload_stub) do
|
||||
Fabricate(:attachment_external_upload_stub, created_by: user, filesize: object_size)
|
||||
end
|
||||
|
||||
before do
|
||||
UploadCreator.any_instance.stubs(:generate_fake_sha1_hash).returns("testbc60eb18e8f974cbfae8bb0f069c3a311024")
|
||||
UploadCreator
|
||||
.any_instance
|
||||
.stubs(:generate_fake_sha1_hash)
|
||||
.returns("testbc60eb18e8f974cbfae8bb0f069c3a311024")
|
||||
end
|
||||
|
||||
it "does not try and download the file" do
|
||||
@ -213,7 +233,7 @@ RSpec.describe ExternalUploadManager do
|
||||
filesize: object_size,
|
||||
upload_type: "backup",
|
||||
original_filename: "backup_since_v1.6.tar.gz",
|
||||
folder_prefix: RailsMultisite::ConnectionManagement.current_db
|
||||
folder_prefix: RailsMultisite::ConnectionManagement.current_db,
|
||||
)
|
||||
end
|
||||
let(:s3_bucket_name) { SiteSetting.s3_backup_bucket }
|
||||
@ -243,7 +263,11 @@ RSpec.describe ExternalUploadManager do
|
||||
|
||||
subject.transform!
|
||||
|
||||
expect(bucket.find_object("#{RailsMultisite::ConnectionManagement.current_db}/backup_since_v1.6.tar.gz")).to be_present
|
||||
expect(
|
||||
bucket.find_object(
|
||||
"#{RailsMultisite::ConnectionManagement.current_db}/backup_since_v1.6.tar.gz",
|
||||
),
|
||||
).to be_present
|
||||
expect(bucket.find_object(external_upload_stub.key)).to be_nil
|
||||
end
|
||||
end
|
||||
@ -255,7 +279,7 @@ RSpec.describe ExternalUploadManager do
|
||||
signed_url = uri.to_s.gsub(uri.query, "")
|
||||
stub_request(:get, signed_url).with(query: hash_including({})).to_return(
|
||||
status: 200,
|
||||
body: object_file.read
|
||||
body: object_file.read,
|
||||
)
|
||||
end
|
||||
|
||||
@ -266,7 +290,7 @@ RSpec.describe ExternalUploadManager do
|
||||
key: external_upload_stub.key,
|
||||
size: object_size,
|
||||
last_modified: Time.zone.now,
|
||||
metadata: external_upload_stub_metadata
|
||||
metadata: external_upload_stub_metadata,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user