Merge pull request #6711 from adullact/fix/stat-time-travel

fix(stat): enforce time travel when dealing with relative dates
This commit is contained in:
Paul Chavard 2021-12-01 18:09:42 +01:00 committed by GitHub
commit dc52606374
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,3 +1,5 @@
include ActiveSupport::Testing::TimeHelpers
describe Stat do
describe '.deleted_dossiers_states' do
subject { Stat.send(:deleted_dossiers_states) }
@ -78,19 +80,21 @@ describe Stat do
describe '.last_four_months_hash' do
it 'works count and cumulate counters by month for both dossier and deleted dossiers' do
4.downto(1).map do |i|
create(:dossier, state: :en_construction, en_construction_at: i.months.ago)
create(:deleted_dossier, dossier_id: i + 100, state: :en_construction, deleted_at: i.month.ago)
travel_to Time.zone.local(2021, 11, 25) do
4.downto(1).map do |i|
create(:dossier, state: :en_construction, en_construction_at: i.months.ago)
create(:deleted_dossier, dossier_id: i + 100, state: :en_construction, deleted_at: i.month.ago)
end
rs = Stat.send(:last_four_months_hash, [
[Dossier.state_not_brouillon, :en_construction_at],
[DeletedDossier.where.not(state: :brouillon), :deleted_at]
])
expect(rs).to eq([
["août 2021", 2],
["septembre 2021", 2],
["octobre 2021", 2]
])
end
rs = Stat.send(:last_four_months_hash, [
[Dossier.state_not_brouillon, :en_construction_at],
[DeletedDossier.where.not(state: :brouillon), :deleted_at]
])
expect(rs).to eq([
["août 2021", 2],
["septembre 2021", 2],
["octobre 2021", 2]
])
end
end