53 lines
1.2 KiB
Ruby
53 lines
1.2 KiB
Ruby
# 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
|