Browse Source

CLDC-NONE: Add a test to ensure future logs are completed

pull/3159/head
Samuel Young 2 weeks ago
parent
commit
bd17edbea1
  1. 4
      app/helpers/collection_time_helper.rb
  2. 27
      spec/shared/shared_log_examples.rb

4
app/helpers/collection_time_helper.rb

@ -50,6 +50,10 @@ module CollectionTimeHelper
next_collection_start_year + 1 next_collection_start_year + 1
end end
def next_collection_start_date
current_collection_start_date + 1.year
end
def previous_collection_start_year def previous_collection_start_year
current_collection_start_year - 1 current_collection_start_year - 1
end end

27
spec/shared/shared_log_examples.rb

@ -2,7 +2,29 @@ require "rails_helper"
# rubocop:disable RSpec/AnyInstance # rubocop:disable RSpec/AnyInstance
RSpec.shared_examples "shared log examples" do |log_type| RSpec.shared_examples "shared log examples" do |log_type|
include CollectionTimeHelper
describe "status" do describe "status" do
[
{
start_date: :current_collection_start_date,
label: "current year",
},
{
start_date: :next_collection_start_date,
label: "next year",
},
].each do |scenario|
context "when creating a log for #{scenario[:label]}" do
around do |example|
start_date = Timecop.return { send(scenario[:start_date]) }
Timecop.freeze(start_date) do
Singleton.__init__(FormHandler)
example.run
end
end
let(:empty_log) { create(log_type) } let(:empty_log) { create(log_type) }
let(:in_progress_log) { create(log_type, :in_progress) } let(:in_progress_log) { create(log_type, :in_progress) }
let(:completed_log) { create(log_type, :completed) } let(:completed_log) { create(log_type, :completed) }
@ -21,6 +43,9 @@ RSpec.shared_examples "shared log examples" do |log_type|
expect(in_progress_log.deleted?).to be(false) expect(in_progress_log.deleted?).to be(false)
end end
# if this test starts failing, likely because a new question has been added
# and the :completed trait in spec/factories/lettings_log.rb (or sales_log.rb)
# needs to be updated to set the database col with that questions answer
it "is set to completed for a completed #{log_type} log" do it "is set to completed for a completed #{log_type} log" do
expect(completed_log.in_progress?).to be(false) expect(completed_log.in_progress?).to be(false)
expect(completed_log.not_started?).to be(false) expect(completed_log.not_started?).to be(false)
@ -28,6 +53,8 @@ RSpec.shared_examples "shared log examples" do |log_type|
expect(completed_log.deleted?).to be(false) expect(completed_log.deleted?).to be(false)
end end
end end
end
end
describe "discard!" do describe "discard!" do
around do |example| around do |example|

Loading…
Cancel
Save