# frozen_string_literal: true

require "rails_helper"

describe ReactionController, type: :controller do
  describe "#index" do
    shared_examples_for "succeeds" do
      it "returns the correct response" do
        subject
        expect(response).to have_rendered("reaction/index")
        expect(response).to have_http_status(200)
      end
    end

    subject { get :index, params: { username: answer_author.screen_name, id: answer.id } }

    let(:answer_author) { FactoryBot.create(:user) }
    let(:answer) { FactoryBot.create(:answer, user: answer_author) }
    let!(:reactees) { FactoryBot.create_list(:user, num_comments) }

    [0, 1, 5, 30].each do |num_comments|
      context "#{num_comments} reactions" do
        let(:num_comments) { num_comments }

        before do
          reactees.each { _1.smile(answer) }
        end

        include_examples "succeeds"
      end
    end

  end
end