mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 11:52:56 +08:00
59097b207f
Over the years we accrued many spelling mistakes in the code base. This PR attempts to fix spelling mistakes and typos in all areas of the code that are extremely safe to change - comments - test descriptions - other low risk areas
90 lines
2.6 KiB
Ruby
90 lines
2.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
require 'unread'
|
|
|
|
describe Unread do
|
|
|
|
let (:user) { Fabricate.build(:user, id: 1) }
|
|
let (:topic) do
|
|
Fabricate.build(:topic,
|
|
posts_count: 13,
|
|
highest_staff_post_number: 15,
|
|
highest_post_number: 13,
|
|
id: 1)
|
|
end
|
|
|
|
let (:topic_user) do
|
|
Fabricate.build(:topic_user,
|
|
notification_level: TopicUser.notification_levels[:tracking],
|
|
topic_id: topic.id,
|
|
user_id: user.id)
|
|
end
|
|
|
|
def unread
|
|
Unread.new(topic, topic_user, Guardian.new(user))
|
|
end
|
|
|
|
describe 'staff counts' do
|
|
it 'should correctly return based on staff post number' do
|
|
|
|
user.admin = true
|
|
|
|
topic_user.last_read_post_number = 13
|
|
topic_user.highest_seen_post_number = 13
|
|
|
|
expect(unread.unread_posts).to eq(0)
|
|
expect(unread.new_posts).to eq(2)
|
|
end
|
|
end
|
|
|
|
describe 'unread_posts' do
|
|
it 'should have 0 unread posts if the user has seen all posts' do
|
|
topic_user.last_read_post_number = 13
|
|
topic_user.highest_seen_post_number = 13
|
|
expect(unread.unread_posts).to eq(0)
|
|
end
|
|
|
|
it 'should have 6 unread posts if the user has seen all but 6 posts' do
|
|
topic_user.last_read_post_number = 5
|
|
topic_user.highest_seen_post_number = 11
|
|
expect(unread.unread_posts).to eq(6)
|
|
end
|
|
|
|
it 'should have 0 unread posts if the user has seen more posts than exist (deleted)' do
|
|
topic_user.last_read_post_number = 100
|
|
topic_user.highest_seen_post_number = 13
|
|
expect(unread.unread_posts).to eq(0)
|
|
end
|
|
end
|
|
|
|
describe 'new_posts' do
|
|
it 'should have 0 new posts if the user has read all posts' do
|
|
topic_user.last_read_post_number = 13
|
|
expect(unread.new_posts).to eq(0)
|
|
end
|
|
|
|
it 'returns 0 when the topic is the same length as when you last saw it' do
|
|
topic_user.highest_seen_post_number = 13
|
|
expect(unread.new_posts).to eq(0)
|
|
end
|
|
|
|
it 'has 3 new posts if the user has read 10 posts' do
|
|
topic_user.highest_seen_post_number = 10
|
|
expect(unread.new_posts).to eq(3)
|
|
end
|
|
|
|
it 'has 0 new posts if the user has read 10 posts but is not tracking' do
|
|
topic_user.highest_seen_post_number = 10
|
|
topic_user.notification_level = TopicUser.notification_levels[:regular]
|
|
expect(unread.new_posts).to eq(0)
|
|
end
|
|
|
|
it 'has 0 new posts if the user read more posts than exist (deleted)' do
|
|
topic_user.highest_seen_post_number = 16
|
|
expect(unread.new_posts).to eq(0)
|
|
end
|
|
end
|
|
|
|
end
|