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
|