2015-10-11 05:41:23 -04:00
|
|
|
require 'rails_helper'
|
2015-03-16 15:14:33 -04:00
|
|
|
|
|
|
|
describe DirectoryItem do
|
2016-01-08 05:53:52 -05:00
|
|
|
|
|
|
|
describe '#period_types' do
|
|
|
|
context "verify enum sequence" do
|
|
|
|
before do
|
|
|
|
@period_types = DirectoryItem.period_types
|
|
|
|
end
|
|
|
|
|
|
|
|
it "'all' should be at 1st position" do
|
|
|
|
expect(@period_types[:all]).to eq(1)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "'quarterly' should be at 6th position" do
|
|
|
|
expect(@period_types[:quarterly]).to eq(6)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-03-16 15:14:33 -04:00
|
|
|
context 'refresh' do
|
2016-03-02 02:23:29 -05:00
|
|
|
before do
|
2016-12-21 23:03:40 -05:00
|
|
|
UserActionCreator.enable
|
2016-03-02 02:23:29 -05:00
|
|
|
end
|
|
|
|
|
2015-03-16 15:14:33 -04:00
|
|
|
it "creates the record for the user" do
|
2017-08-09 15:57:35 -04:00
|
|
|
post = create_post
|
2015-03-16 15:14:33 -04:00
|
|
|
DirectoryItem.refresh!
|
|
|
|
expect(DirectoryItem.where(period_type: DirectoryItem.period_types[:all])
|
2015-03-20 13:24:03 -04:00
|
|
|
.where(user_id: post.user.id)
|
2016-03-02 02:23:29 -05:00
|
|
|
.where(topic_count: 1).count).to eq(1)
|
2015-03-16 15:14:33 -04:00
|
|
|
end
|
|
|
|
|
2017-08-09 15:57:35 -04:00
|
|
|
it "handles users with no activity" do
|
|
|
|
post = nil
|
|
|
|
|
|
|
|
freeze_time(2.years.ago) do
|
|
|
|
post = create_post
|
|
|
|
# Create records for that activity
|
|
|
|
DirectoryItem.refresh!
|
|
|
|
end
|
|
|
|
|
|
|
|
DirectoryItem.refresh!
|
|
|
|
[:yearly, :monthly, :weekly, :daily, :quarterly].each do |period|
|
|
|
|
directory_item = DirectoryItem
|
|
|
|
.where(period_type: DirectoryItem.period_types[period])
|
|
|
|
.where(user_id: post.user.id)
|
|
|
|
.first
|
|
|
|
expect(directory_item.topic_count).to eq(0)
|
|
|
|
expect(directory_item.post_count).to eq(0)
|
|
|
|
end
|
|
|
|
|
|
|
|
directory_item = DirectoryItem
|
|
|
|
.where(period_type: DirectoryItem.period_types[:all])
|
|
|
|
.where(user_id: post.user.id)
|
|
|
|
.first
|
|
|
|
expect(directory_item.topic_count).to eq(1)
|
|
|
|
end
|
|
|
|
|
2015-03-16 15:14:33 -04:00
|
|
|
end
|
|
|
|
end
|