Browse Source

Add test and fix cases when no quarters are returned

pull/2940/head
Kat 3 months ago
parent
commit
b8abf9644f
  1. 4
      app/helpers/collection_deadline_helper.rb
  2. 4
      app/helpers/tasklist_helper.rb
  3. 15
      spec/helpers/tasklist_helper_spec.rb

4
app/helpers/collection_deadline_helper.rb

@ -66,8 +66,10 @@ module CollectionDeadlineHelper
end end
def quarter_for_date(date: Time.zone.now) 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) } quarter = quarters.find { |q| date.between?(q[:start_date], q[:cutoff_date] + 1.day) }
return unless quarter return unless quarter

4
app/helpers/tasklist_helper.rb

@ -76,9 +76,11 @@ module TasklistHelper
return if log.startdate.nil? return if log.startdate.nil?
log_quarter = quarter_for_date(date: log.startdate) log_quarter = quarter_for_date(date: log.startdate)
return if log_quarter.nil?
deadline_for_log = log_quarter.cutoff_date 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
"<p class=\"govuk-body\">#{log_quarter.quarter} Deadline: #{log_quarter.cutoff_date.strftime('%A %-d %B %Y')}.<p>".html_safe "<p class=\"govuk-body\">#{log_quarter.quarter} Deadline: #{log_quarter.cutoff_date.strftime('%A %-d %B %Y')}.<p>".html_safe
else else
"<p class=\"govuk-body app-red-text\"><strong>Overdue: #{log_quarter.quarter} deadline #{log_quarter.cutoff_date.strftime('%A %-d %B %Y')}.</strong></p>".html_safe "<p class=\"govuk-body app-red-text\"><strong>Overdue: #{log_quarter.quarter} deadline #{log_quarter.cutoff_date.strftime('%A %-d %B %Y')}.</strong></p>".html_safe

15
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)) } let(:log) { build(:sales_log, saledate: Time.zone.local(2025, 6, 1)) }
it "returns the deadline text" do 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)) 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
end end
@ -236,9 +244,8 @@ RSpec.describe TasklistHelper do
let(:log) { build(:sales_log, saledate: Time.zone.local(2025, 2, 1)) } let(:log) { build(:sales_log, saledate: Time.zone.local(2025, 2, 1)) }
it "returns the overdue text" do 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)) 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 end
end end

Loading…
Cancel
Save