# frozen_string_literal: true

require "rails_helper"

RSpec.describe "New reports indicator", type: :request do
  let(:user) { FactoryBot.create(:user, roles: [:moderator]) }

  before do
    sign_in user
  end

  subject { get "/" }

  describe "setting an assign for new reports" do
    context "never visited the reports listing before" do
      it "sets a assign" do
        subject

        expect(assigns["has_new_reports"]).to eq(true)
      end
    end

    context "visited the reports listing, with no new reports" do
      before do
        user.last_reports_visit = DateTime.now
        user.save
      end

      it "sets a assign" do
        subject

        expect(assigns["has_new_reports"]).to eq(false)
      end
    end

    context "visited the reports listing, with new reports" do
      let(:other_user) { FactoryBot.create :user }

      before do
        Report.create(user:, target_id: other_user.id, target_user_id: other_user.id, type: "Reports::User", created_at: DateTime.now)
        user.last_reports_visit = DateTime.now - 1.day
        user.save
      end

      it "sets a assign" do
        subject

        expect(assigns["has_new_reports"]).to eq(true)
      end
    end
  end
end