# frozen_string_literal: true RSpec.describe Jobs::PullUserProfileHotlinkedImages do fab!(:user) let(:image_url) { "http://wiki.mozilla.org/images/2/2e/Longcat1.png" } let(:png) do Base64.decode64( "R0lGODlhAQABALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD//wBiZCH5BAEAAA8ALAAAAAABAAEAAAQC8EUAOw==", ) end before do stub_request(:get, image_url).to_return(body: png, headers: { "Content-Type" => "image/png" }) SiteSetting.download_remote_images_to_local = true end describe "#execute" do before { stub_image_size } it "replaces images" do user.user_profile.update!(bio_raw: "![](#{image_url})") expect { Jobs::PullUserProfileHotlinkedImages.new.execute(user_id: user.id) }.to change { Upload.count }.by(1) expect(user.user_profile.reload.bio_cooked).to include(Upload.last.url) end it "handles nil bio" do expect { Jobs::PullUserProfileHotlinkedImages.new.execute(user_id: user.id) }.not_to change { Upload.count } expect(user.user_profile.reload.bio_cooked).to eq(nil) end end end