discourse/plugins/discourse-gamification/spec/models/gamification_leaderboard_spec.rb
Jarek Radosz 71834c898f
DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073)
Co-authored-by: Loïc Guitaut <loic@discourse.org>
2025-10-06 16:11:01 +02:00

34 lines
1.2 KiB
Ruby
Vendored

# frozen_string_literal: true
RSpec.describe DiscourseGamification::GamificationLeaderboard, type: :model do
fab!(:leaderboard, :gamification_leaderboard)
describe ".resolve_period" do
it "returns default period given a blank period" do
expect(leaderboard.default_period).to eq(0)
expect(leaderboard.resolve_period("")).to eq("all_time")
expect(leaderboard.resolve_period(nil)).to eq("all_time")
leaderboard.default_period = 5
expect(leaderboard.resolve_period(nil)).to eq("daily")
end
it "returns given period as is if valid" do
described_class.periods.keys.each do |period|
expect(leaderboard.resolve_period(period)).to eq(period)
end
end
it "returns default period/all_time given an invalid period" do
expect(leaderboard.default_period).to eq(0)
expect(leaderboard.resolve_period("year")).to eq("all_time")
leaderboard.default_period = 2
expect(leaderboard.default_period).to eq(2)
expect(leaderboard.resolve_period("quart")).to eq("quarterly")
leaderboard.default_period = -1
expect(leaderboard.default_period).to eq(-1)
expect(leaderboard.resolve_period("invalid")).to eq("all_time")
end
end
end