# frozen_string_literal: true

RSpec.describe InlineUploads, type: :multisite do
  before { set_cdn_url "https://awesome.com" }

  describe ".process" do
    describe "s3 uploads" do
      let(:upload) { Fabricate(:upload_s3) }
      let(:upload2) { Fabricate(:upload_s3) }
      let(:upload3) { Fabricate(:upload) }

      before do
        upload3
        setup_s3
        SiteSetting.s3_cdn_url = "https://s3.cdn.com"
      end

      it "should correct image URLs in multisite" do
        md = <<~MD
        https:#{upload2.url} https:#{upload2.url}
        #{URI.join(SiteSetting.s3_cdn_url, URI.parse(upload2.url).path)}

        <img src="#{upload.url}" alt="some image">
        <img src="#{URI.join(SiteSetting.s3_cdn_url, URI.parse(upload2.url).path)}" alt="some image">
        <img src="#{upload3.url}">
        MD

        expect(InlineUploads.process(md)).to eq(<<~MD)
        #{Discourse.base_url}#{upload2.short_path} #{Discourse.base_url}#{upload2.short_path}
        #{Discourse.base_url}#{upload2.short_path}

        <img src="#{upload.short_url}" alt="some image">
        <img src="#{upload2.short_url}" alt="some image">
        <img src="#{upload3.short_url}">
        MD
      end
    end
  end
end