# frozen_string_literal: true RSpec.describe Onebox::Engine::AnimatedImageOnebox do let(:giphy) { "http://gph.is/15bRbWf" } let(:direct_gif) { "https://media4.giphy.com/media/Zatyu5LBO2zCyhiAAs/giphy.gif" } let(:tenor) { "https://tenor.com/bb3fQ.gif" } before do @previous_options = Onebox.options.to_h Onebox.options = { redirect_limit: 0 } stub_request(:get, giphy).to_return(status: 200, body: onebox_response("giphy")) stub_request(:get, direct_gif).to_return(status: 200, body: file_from_fixtures("animated.webp")) stub_request(:get, tenor).to_return(status: 200, body: onebox_response("tenor")) end after { Onebox.options = @previous_options } it "works for giphy short URLs" do html = described_class.new(giphy).to_html expect(html).to include("img") expect(html).to include("class='animated onebox'") end it "works when the response is the image asset itself" do html = described_class.new(direct_gif).to_html expect(html).to include("img") expect(html).to include("src='#{direct_gif}'") expect(html).to include("class='animated onebox'") end it "works for tenor URLs" do html = described_class.new(tenor).to_html expect(html).to include("img") expect(html).to include("class='animated onebox'") end end