[deploy] Bug Fix: Dont Freeze Timeframer Timestamps bc They Will be Inaccurate (#8708)
This commit is contained in:
parent
9187c0b6bf
commit
8ce292870e
2 changed files with 45 additions and 10 deletions
|
|
@ -2,21 +2,25 @@ class Timeframer
|
|||
attr_accessor :timeframe
|
||||
|
||||
LATEST_TIMEFRAME = "latest".freeze
|
||||
|
||||
FILTER_TIMEFRAMES = {
|
||||
"infinity" => 5.years.ago,
|
||||
"year" => 1.year.ago,
|
||||
"month" => 1.month.ago,
|
||||
"week" => 1.week.ago
|
||||
}.freeze
|
||||
|
||||
DATETIMES = FILTER_TIMEFRAMES.merge(LATEST_TIMEFRAME: LATEST_TIMEFRAME).freeze
|
||||
FILTER_TIMEFRAMES = %w[infinity year month week].freeze
|
||||
|
||||
def initialize(timeframe)
|
||||
@timeframe = timeframe
|
||||
end
|
||||
|
||||
def datetime
|
||||
DATETIMES[timeframe]
|
||||
datetimes[timeframe]
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def datetimes
|
||||
@datetimes ||= {
|
||||
infinity: 5.years.ago,
|
||||
year: 1.year.ago,
|
||||
month: 1.month.ago,
|
||||
week: 1.week.ago,
|
||||
LATEST_TIMEFRAME: LATEST_TIMEFRAME
|
||||
}.with_indifferent_access
|
||||
end
|
||||
end
|
||||
|
|
|
|||
31
spec/labor/timeframer_spec.rb
Normal file
31
spec/labor/timeframer_spec.rb
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe Timeframer, type: :labor do
|
||||
it "sets timeframe for week to 1 week ago" do
|
||||
Timecop.freeze(Time.current) do
|
||||
timeframer = described_class.new("week")
|
||||
expect(timeframer.datetime).to eq(1.week.ago)
|
||||
end
|
||||
end
|
||||
|
||||
it "sets timeframe for month to 1 month ago" do
|
||||
Timecop.freeze(Time.current) do
|
||||
timeframer = described_class.new("month")
|
||||
expect(timeframer.datetime).to eq(1.month.ago)
|
||||
end
|
||||
end
|
||||
|
||||
it "sets timeframe for year to 1 year ago" do
|
||||
Timecop.freeze(Time.current) do
|
||||
timeframer = described_class.new("year")
|
||||
expect(timeframer.datetime).to eq(1.year.ago)
|
||||
end
|
||||
end
|
||||
|
||||
it "sets timeframe for infinity to 5 years ago" do
|
||||
Timecop.freeze(Time.current) do
|
||||
timeframer = described_class.new("infinity")
|
||||
expect(timeframer.datetime).to eq(5.years.ago)
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Reference in a new issue