From b8abf9644f0a2286fba23c74b21ce7d90438405b Mon Sep 17 00:00:00 2001 From: Kat <54268893+kosiakkatrina@users.noreply.github.com> Date: Thu, 13 Feb 2025 07:43:25 +0000 Subject: [PATCH] Add test and fix cases when no quarters are returned --- app/helpers/collection_deadline_helper.rb | 4 +++- app/helpers/tasklist_helper.rb | 4 +++- spec/helpers/tasklist_helper_spec.rb | 15 +++++++++++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/helpers/collection_deadline_helper.rb b/app/helpers/collection_deadline_helper.rb index 892a3ec22..de9c12075 100644 --- a/app/helpers/collection_deadline_helper.rb +++ b/app/helpers/collection_deadline_helper.rb @@ -66,8 +66,10 @@ module CollectionDeadlineHelper end def quarter_for_date(date: Time.zone.now) - quarters = quarter_dates(collection_start_year_for_date(date)) + collection_start_year = collection_start_year_for_date(date) + return unless QUARTERLY_DEADLINES.key?(collection_start_year) + quarters = quarter_dates(collection_start_year) quarter = quarters.find { |q| date.between?(q[:start_date], q[:cutoff_date] + 1.day) } return unless quarter diff --git a/app/helpers/tasklist_helper.rb b/app/helpers/tasklist_helper.rb index dd0dba362..55f44bee6 100644 --- a/app/helpers/tasklist_helper.rb +++ b/app/helpers/tasklist_helper.rb @@ -76,9 +76,11 @@ module TasklistHelper return if log.startdate.nil? log_quarter = quarter_for_date(date: log.startdate) + return if log_quarter.nil? + deadline_for_log = log_quarter.cutoff_date - if deadline_for_log > Time.zone.now + if deadline_for_log.beginning_of_day >= Time.zone.today.beginning_of_day "

#{log_quarter.quarter} Deadline: #{log_quarter.cutoff_date.strftime('%A %-d %B %Y')}.

".html_safe else "

Overdue: #{log_quarter.quarter} deadline #{log_quarter.cutoff_date.strftime('%A %-d %B %Y')}.

".html_safe diff --git a/spec/helpers/tasklist_helper_spec.rb b/spec/helpers/tasklist_helper_spec.rb index 6338b1014..476528299 100644 --- a/spec/helpers/tasklist_helper_spec.rb +++ b/spec/helpers/tasklist_helper_spec.rb @@ -226,9 +226,17 @@ RSpec.describe TasklistHelper do let(:log) { build(:sales_log, saledate: Time.zone.local(2025, 6, 1)) } it "returns the deadline text" do - allow(Time.zone).to receive(:now).and_return(Time.zone.local(2025, 5, 7)) allow(Time.zone).to receive(:today).and_return(Time.zone.local(2025, 5, 7)) - expect(deadline_text(log)).to include("Deadline: ") + expect(deadline_text(log)).to include("Q1 Deadline: ") + end + end + + context "when today is the deadline for log with sale/start date" do + let(:log) { build(:sales_log, saledate: Time.zone.local(2025, 2, 1)) } + + it "returns the overdue text" do + allow(Time.zone).to receive(:today).and_return(Time.zone.local(2025, 6, 6)) + expect(deadline_text(log)).to include("Q4 Deadline: ") end end @@ -236,9 +244,8 @@ RSpec.describe TasklistHelper do let(:log) { build(:sales_log, saledate: Time.zone.local(2025, 2, 1)) } it "returns the overdue text" do - allow(Time.zone).to receive(:now).and_return(Time.zone.local(2025, 6, 7)) allow(Time.zone).to receive(:today).and_return(Time.zone.local(2025, 6, 7)) - expect(deadline_text(log)).to include("Overdue: ") + expect(deadline_text(log)).to include("Overdue: Q4 deadline") end end end