# frozen_string_literal: true

RSpec.describe Onebox::Engine::DiscourseTopicOnebox do
  subject(:onebox) { described_class.new(url) }

  describe "#data" do
    subject(:data) { onebox.data }

    let(:url) do
      "https://meta.discourse.org/t/congratulations-most-stars-in-2013-github-octoverse/12483"
    end
    let(:expected_data) do
      {
        article_published_time: "6 Feb 14",
        article_published_time_title: "04:55AM - 06 February 2014",
        article_tags: %w[how-to sso],
        card: "summary",
        categories: [{ name: "praise", color: "9EB83B" }],
        data1: "1 mins 🕑",
        data2: "9 ❤",
        description:
          "Congratulations Discourse for qualifying Repositories with the most stars on GitHub Octoverse.     And that too in just over an year, way to go! 💥",
        domain: "Discourse Meta",
        favicon:
          "https://d11a6trkgmumsb.cloudfront.net/optimized/3X/b/3/b33be9538df3547fcf9d1a51a4637d77392ac6f9_2_32x32.png",
        ignore_canonical: "true",
        image:
          "https://d11a6trkgmumsb.cloudfront.net/optimized/2X/d/d063b3b0807377d98695ee08042a9ba0a8c593bd_2_690x362.png",
        label1: "Reading time",
        label2: "Likes",
        link:
          "https://meta.discourse.org/t/congratulations-most-stars-in-2013-github-octoverse/12483",
        published_time: "2014-02-06T04:55:19+00:00",
        render_category_block?: true,
        render_tags?: true,
        site_name: "Discourse Meta",
        title: "Congratulations, most stars in 2013 GitHub Octoverse!",
        url:
          "https://meta.discourse.org/t/congratulations-most-stars-in-2013-github-octoverse/12483",
      }
    end

    before do
      stub_request(:get, url).to_return(status: 200, body: onebox_response("discourse_topic"))
    end

    it "returns the expected data" do
      expect(data).to include expected_data
    end
  end
end