FEATURE: add group filter for admin reports (#23381)

FEATURE: add group filter for admin reports

DEV: add plugin outlet for admin dashboard tabs
This commit is contained in:
Arpit Jalan
2023-09-05 11:17:18 +05:30
committed by GitHub
parent d1253bc3af
commit e5f3c26d20
8 changed files with 124 additions and 2 deletions

View File

@@ -2109,4 +2109,52 @@ RSpec.describe Post do
expect(post4.canonical_url).to eq("#{topic_url}?page=2#post_#{post4.post_number}")
end
end
describe "public_posts_count_per_day" do
before do
freeze_time DateTime.parse("2017-03-01 12:00")
Fabricate(:post)
Fabricate(:post, created_at: 1.day.ago)
Fabricate(:post, created_at: 1.day.ago)
Fabricate(:post, created_at: 2.days.ago)
Fabricate(:post, created_at: 4.days.ago)
end
let(:listable_topics_count_per_day) do
{ 1.day.ago.to_date => 2, 2.days.ago.to_date => 1, Time.now.utc.to_date => 1 }
end
it "collect closed interval public post count" do
expect(Post.public_posts_count_per_day(2.days.ago, Time.now)).to include(
listable_topics_count_per_day,
)
expect(Post.public_posts_count_per_day(2.days.ago, Time.now)).not_to include(
4.days.ago.to_date => 1,
)
end
it "returns the correct number of public posts per day when there are no public posts" do
Fabricate(:post, post_type: Post.types[:whisper], created_at: 6.days.ago)
Fabricate(:post, post_type: Post.types[:whisper], created_at: 7.days.ago)
expect(Post.public_posts_count_per_day(10.days.ago, 5.days.ago)).to be_empty
end
it "returns the correct number of public posts per day with group filter" do
user = Fabricate(:user)
group_user = Fabricate(:user)
group = Fabricate(:group)
group.add(group_user)
Fabricate(:post, user: user, created_at: 6.days.ago)
Fabricate(:post, user: user, created_at: 7.days.ago)
Fabricate(:post, user: group_user, created_at: 6.days.ago)
Fabricate(:post, user: group_user, created_at: 7.days.ago)
expect(
Post.public_posts_count_per_day(10.days.ago, 5.days.ago, nil, false, [group.id]),
).to eq(6.days.ago.to_date => 1, 7.days.ago.to_date => 1)
end
end
end