DEV: Update tl3 spec to remove hard-coded primary keys
In some test runs, the hard-coded ids could correspond to real topics created earlier in the tests, and cause random test failures
This commit is contained in:
parent
77dd31a642
commit
0e4497b6be
|
@ -8,13 +8,17 @@ describe TrustLevel3Requirements do
|
||||||
subject(:tl3_requirements) { described_class.new(user) }
|
subject(:tl3_requirements) { described_class.new(user) }
|
||||||
fab!(:moderator) { Fabricate(:moderator) }
|
fab!(:moderator) { Fabricate(:moderator) }
|
||||||
|
|
||||||
|
fab!(:topic1) { Fabricate(:topic) }
|
||||||
|
fab!(:topic2) { Fabricate(:topic) }
|
||||||
|
fab!(:topic3) { Fabricate(:topic) }
|
||||||
|
fab!(:topic4) { Fabricate(:topic) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
described_class.clear_cache
|
described_class.clear_cache
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_view(id, at, user_id)
|
def make_view(topic, at, user_id)
|
||||||
Fabricate(:topic, id: id) unless Topic.where(id: id).exists?
|
TopicViewItem.add(topic.id, '11.22.33.44', user_id, at, _skip_redis = true)
|
||||||
TopicViewItem.add(id, '11.22.33.44', user_id, at, _skip_redis = true)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def like_at(created_by, post, created_at)
|
def like_at(created_by, post, created_at)
|
||||||
|
@ -270,21 +274,21 @@ describe TrustLevel3Requirements do
|
||||||
describe "topics_viewed" do
|
describe "topics_viewed" do
|
||||||
it "counts topics views within last 100 days (default time period), not counting a topic more than once" do
|
it "counts topics views within last 100 days (default time period), not counting a topic more than once" do
|
||||||
user.save
|
user.save
|
||||||
make_view(9, 1.day.ago, user.id)
|
make_view(topic1, 1.day.ago, user.id)
|
||||||
make_view(9, 3.days.ago, user.id) # same topic, different day
|
make_view(topic1, 3.days.ago, user.id) # same topic, different day
|
||||||
make_view(3, 4.days.ago, user.id)
|
make_view(topic2, 4.days.ago, user.id)
|
||||||
make_view(2, 101.days.ago, user.id) # too long ago
|
make_view(topic3, 101.days.ago, user.id) # too long ago
|
||||||
expect(tl3_requirements.topics_viewed).to eq(2)
|
expect(tl3_requirements.topics_viewed).to eq(2)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "counts topics views within last 200 days, respecting tl3_time_period setting" do
|
it "counts topics views within last 200 days, respecting tl3_time_period setting" do
|
||||||
SiteSetting.tl3_time_period = 200
|
SiteSetting.tl3_time_period = 200
|
||||||
user.save
|
user.save
|
||||||
make_view(9, 1.day.ago, user.id)
|
make_view(topic1, 1.day.ago, user.id)
|
||||||
make_view(9, 3.days.ago, user.id) # same topic, different day
|
make_view(topic1, 3.days.ago, user.id) # same topic, different day
|
||||||
make_view(3, 4.days.ago, user.id)
|
make_view(topic2, 4.days.ago, user.id)
|
||||||
make_view(2, 101.days.ago, user.id)
|
make_view(topic3, 101.days.ago, user.id)
|
||||||
make_view(4, 201.days.ago, user.id) # too long ago
|
make_view(topic4, 201.days.ago, user.id) # too long ago
|
||||||
expect(tl3_requirements.topics_viewed).to eq(3)
|
expect(tl3_requirements.topics_viewed).to eq(3)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -296,8 +300,8 @@ describe TrustLevel3Requirements do
|
||||||
target_usernames: [user.username, moderator.username]
|
target_usernames: [user.username, moderator.username]
|
||||||
).topic
|
).topic
|
||||||
|
|
||||||
make_view(9, 1.day.ago, user.id)
|
make_view(topic1, 1.day.ago, user.id)
|
||||||
make_view(private_topic.id, 1.day.ago, user.id)
|
make_view(private_topic, 1.day.ago, user.id)
|
||||||
expect(tl3_requirements.topics_viewed).to eq(1)
|
expect(tl3_requirements.topics_viewed).to eq(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -316,9 +320,9 @@ describe TrustLevel3Requirements do
|
||||||
describe "topics_viewed_all_time" do
|
describe "topics_viewed_all_time" do
|
||||||
it "counts topics viewed at any time" do
|
it "counts topics viewed at any time" do
|
||||||
user.save
|
user.save
|
||||||
make_view(10, 1.day.ago, user.id)
|
make_view(topic1, 1.day.ago, user.id)
|
||||||
make_view(9, 100.days.ago, user.id)
|
make_view(topic2, 100.days.ago, user.id)
|
||||||
make_view(8, 101.days.ago, user.id)
|
make_view(topic3, 101.days.ago, user.id)
|
||||||
expect(tl3_requirements.topics_viewed_all_time).to eq(3)
|
expect(tl3_requirements.topics_viewed_all_time).to eq(3)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -330,11 +334,11 @@ describe TrustLevel3Requirements do
|
||||||
target_usernames: [user.username, moderator.username]
|
target_usernames: [user.username, moderator.username]
|
||||||
).topic
|
).topic
|
||||||
|
|
||||||
make_view(10, 1.day.ago, user.id)
|
make_view(topic1, 1.day.ago, user.id)
|
||||||
make_view(9, 100.days.ago, user.id)
|
make_view(topic2, 100.days.ago, user.id)
|
||||||
make_view(8, 101.days.ago, user.id)
|
make_view(topic3, 101.days.ago, user.id)
|
||||||
make_view(private_topic.id, 1.day.ago, user.id)
|
make_view(private_topic, 1.day.ago, user.id)
|
||||||
make_view(private_topic.id, 100.days.ago, user.id)
|
make_view(private_topic, 100.days.ago, user.id)
|
||||||
expect(tl3_requirements.topics_viewed_all_time).to eq(3)
|
expect(tl3_requirements.topics_viewed_all_time).to eq(3)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue