mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 14:12:10 +08:00
Merge pull request #4147 from cpradio/default_top_timeframe
FIX: Use default top setting when user is return or enough data exists for Top Page Results
This commit is contained in:
@ -224,28 +224,62 @@ describe ListController do
|
||||
describe "best_periods_for" do
|
||||
|
||||
it "returns yearly for more than 180 days" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("all")
|
||||
expect(ListController.best_periods_for(nil)).to eq([:yearly])
|
||||
expect(ListController.best_periods_for(180.days.ago)).to eq([:yearly])
|
||||
end
|
||||
|
||||
it "includes monthly when less than 180 days and more than 35 days" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("all")
|
||||
(35...180).each do |date|
|
||||
expect(ListController.best_periods_for(date.days.ago)).to eq([:monthly, :yearly])
|
||||
end
|
||||
end
|
||||
|
||||
it "includes weekly when less than 35 days and more than 8 days" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("all")
|
||||
(8...35).each do |date|
|
||||
expect(ListController.best_periods_for(date.days.ago)).to eq([:weekly, :monthly, :yearly])
|
||||
end
|
||||
end
|
||||
|
||||
it "includes daily when less than 8 days" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("all")
|
||||
(0...8).each do |date|
|
||||
expect(ListController.best_periods_for(date.days.ago)).to eq([:daily, :weekly, :monthly, :yearly])
|
||||
end
|
||||
end
|
||||
|
||||
it "returns default even for more than 180 days" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("monthly")
|
||||
expect(ListController.best_periods_for(nil)).to eq([:monthly, :yearly])
|
||||
expect(ListController.best_periods_for(180.days.ago)).to eq([:monthly, :yearly])
|
||||
end
|
||||
|
||||
it "returns default even when less than 180 days and more than 35 days" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("weekly")
|
||||
(35...180).each do |date|
|
||||
expect(ListController.best_periods_for(date.days.ago)).to eq([:weekly, :monthly, :yearly])
|
||||
end
|
||||
end
|
||||
|
||||
it "returns default even when less than 35 days and more than 8 days" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("daily")
|
||||
(8...35).each do |date|
|
||||
expect(ListController.best_periods_for(date.days.ago)).to eq([:daily, :weekly, :monthly, :yearly])
|
||||
end
|
||||
end
|
||||
|
||||
it "doesn't return default when set to all" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("all")
|
||||
expect(ListController.best_periods_for(nil)).to eq([:yearly])
|
||||
end
|
||||
|
||||
it "doesn't return value twice when matches default" do
|
||||
SiteSetting.stubs(:top_page_default_timeframe).returns("yearly")
|
||||
expect(ListController.best_periods_for(nil)).to eq([:yearly])
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "categories suppression" do
|
||||
|
Reference in New Issue
Block a user