fix: Undefined method `encode' for nil for avatar from url job (#10450)
Invalid urls supplied to the job was causing sentry issues. The issue primarily occurs when the download file.original_filename comes out as empty fixes: https://github.com/chatwoot/chatwoot/issues/10449
This commit is contained in:
@@ -17,4 +17,20 @@ RSpec.describe Avatar::AvatarFromUrlJob do
|
||||
described_class.perform_now(avatarable, avatar_url)
|
||||
expect(avatarable.avatar).to be_attached
|
||||
end
|
||||
|
||||
# ref: https://github.com/chatwoot/chatwoot/issues/10449
|
||||
it 'will not throw error if the avatar url is not valid and the file does not have a filename' do
|
||||
# Create a temporary file with no filename and content type application/xml
|
||||
temp_file = Tempfile.new(['invalid', '.xml'])
|
||||
temp_file.write('<invalid>content</invalid>')
|
||||
temp_file.rewind
|
||||
|
||||
expect(Down).to receive(:download).with(avatar_url, max_size: 15 * 1024 * 1024)
|
||||
.and_return(ActionDispatch::Http::UploadedFile.new(tempfile: temp_file, type: 'application/xml'))
|
||||
|
||||
expect { described_class.perform_now(avatarable, avatar_url) }.not_to raise_error
|
||||
|
||||
temp_file.close
|
||||
temp_file.unlink # deletes the temp file
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user