mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 03:21:12 +08:00
FIX: Improve error handling for calculate_dominant_color!
(#18503)
These errors tend to indicate that the upload is missing on the remote store. This is bad, but we don't want it to block the dominant-color calculation process. This commit catches errors when there is an HTTP error, and fixes the `base_store.rb` implementation when `FileHelper.download` returns nil.
This commit is contained in:
@ -703,7 +703,7 @@ RSpec.describe Upload do
|
||||
expect(invalid_image.dominant_color).to eq(nil)
|
||||
end
|
||||
|
||||
it "correctly handles download failures" do
|
||||
it "correctly handles error when file is too large to download" do
|
||||
white_image.stubs(:local?).returns(true)
|
||||
Discourse.store.stubs(:download).returns(nil)
|
||||
|
||||
@ -712,6 +712,15 @@ RSpec.describe Upload do
|
||||
expect(invalid_image.dominant_color).to eq("")
|
||||
end
|
||||
|
||||
it "correctly handles error when file has HTTP error" do
|
||||
white_image.stubs(:local?).returns(true)
|
||||
Discourse.store.stubs(:download).raises(OpenURI::HTTPError)
|
||||
|
||||
expect(invalid_image.dominant_color).to eq(nil)
|
||||
expect(invalid_image.dominant_color(calculate_if_missing: true)).to eq("")
|
||||
expect(invalid_image.dominant_color).to eq("")
|
||||
end
|
||||
|
||||
it "is validated for length" do
|
||||
u = Fabricate(:upload)
|
||||
|
||||
|
Reference in New Issue
Block a user