Browse Source

CLDC-NONE: Add a test to ensure future logs are completed (#3159)

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

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

fix assertion order

improve test labels
main
Samuel Young 1 day ago committed by GitHub
parent
commit
6ad1c1983c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      app/helpers/collection_time_helper.rb
  2. 29
      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

29
spec/shared/shared_log_examples.rb

@ -2,14 +2,36 @@ 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",
},
{
start_date: :next_collection_start_date,
label: "next",
},
].each do |scenario|
context "when creating a log for #{scenario[:label]} year" 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) }
it "is set to not started for an empty #{log_type} log" do it "is set to not started for an empty #{log_type} log" do
expect(empty_log.not_started?).to be(true)
expect(empty_log.in_progress?).to be(false) expect(empty_log.in_progress?).to be(false)
expect(empty_log.not_started?).to be(true)
expect(empty_log.completed?).to be(false) expect(empty_log.completed?).to be(false)
expect(empty_log.deleted?).to be(false) expect(empty_log.deleted?).to be(false)
end end
@ -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