discourse/spec/components/unread_spec.rb
Josh Soref 59097b207f
DEV: Correct typos and spelling mistakes (#12812)
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
2021-05-21 11:43:47 +10:00

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