From fcc7c14efbaf21a4783b8be9d57edf4ddb6ec847 Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Fri, 1 Apr 2022 11:48:29 +0100 Subject: [PATCH] Fix intermittent spec failure --- spec/models/form/subsection_spec.rb | 43 +++++++++---------- spec/models/organisation_spec.rb | 4 +- .../exports/case_log_export_service_spec.rb | 3 +- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/spec/models/form/subsection_spec.rb b/spec/models/form/subsection_spec.rb index 9d0620b8d..d41755faf 100644 --- a/spec/models/form/subsection_spec.rb +++ b/spec/models/form/subsection_spec.rb @@ -2,7 +2,7 @@ require "rails_helper" require_relative "../../request_helper" RSpec.describe Form::Subsection, type: :model do - subject(:sub_section) { described_class.new(subsection_id, subsection_definition, section) } + subject(:subsection) { described_class.new(subsection_id, subsection_definition, section) } let(:case_log) { FactoryBot.build(:case_log) } let(:form) { case_log.form } @@ -17,55 +17,55 @@ RSpec.describe Form::Subsection, type: :model do end it "has an id" do - expect(sub_section.id).to eq(subsection_id) + expect(subsection.id).to eq(subsection_id) end it "has a label" do - expect(sub_section.label).to eq("Household characteristics") + expect(subsection.label).to eq("Household characteristics") end it "has pages" do expected_pages = %w[tenant_code person_1_age person_1_gender person_1_working_situation household_number_of_other_members propcode] - expect(sub_section.pages.map(&:id)).to eq(expected_pages) + expect(subsection.pages.map(&:id)).to eq(expected_pages) end it "has questions" do expected_questions = %w[tenant_code age1 sex1 ecstat1 other_hhmemb relat2 age2 sex2 ecstat2 propcode] - expect(sub_section.questions.map(&:id)).to eq(expected_questions) + expect(subsection.questions.map(&:id)).to eq(expected_questions) end context "with an in progress case log" do let(:case_log) { FactoryBot.build(:case_log, :in_progress) } it "has a status" do - expect(sub_section.status(case_log)).to eq(:in_progress) + expect(subsection.status(case_log)).to eq(:in_progress) end it "has a completed status for completed subsection" do subsection_definition = section_definition["subsections"]["household_needs"] - sub_section = described_class.new("household_needs", subsection_definition, section) + subsection = described_class.new("household_needs", subsection_definition, section) case_log.armedforces = 3 case_log.illness = 1 case_log.housingneeds_a = 1 case_log.la = "E06000014" case_log.illness_type_1 = 1 - expect(sub_section.status(case_log)).to eq(:completed) + expect(subsection.status(case_log)).to eq(:completed) end it "has status helpers" do - expect(sub_section.is_incomplete?(case_log)).to be(true) - expect(sub_section.is_started?(case_log)).to be(true) + expect(subsection.is_incomplete?(case_log)).to be(true) + expect(subsection.is_started?(case_log)).to be(true) end it "has question helpers for the number of applicable questions" do expected_questions = %w[tenant_code age1 sex1 ecstat1 other_hhmemb propcode] - expect(sub_section.applicable_questions(case_log).map(&:id)).to eq(expected_questions) - expect(sub_section.applicable_questions_count(case_log)).to eq(6) + expect(subsection.applicable_questions(case_log).map(&:id)).to eq(expected_questions) + expect(subsection.applicable_questions_count(case_log)).to eq(6) end it "has question helpers for the number of answered questions" do subsection_definition = section_definition["subsections"]["household_needs"] - sub_section = described_class.new("household_needs", subsection_definition, section) + subsection = described_class.new("household_needs", subsection_definition, section) expected_questions = %w[armedforces illness accessibility_requirements la condition_effects] case_log.armedforces = 3 case_log.illness = 1 @@ -74,33 +74,32 @@ RSpec.describe Form::Subsection, type: :model do case_log.is_la_inferred = false case_log.la = "E06000014" case_log.illness_type_1 = 1 - expect(sub_section.answered_questions(case_log).map(&:id)).to eq(expected_questions) - expect(sub_section.answered_questions_count(case_log)).to eq(5) + expect(subsection.answered_questions(case_log).map(&:id)).to eq(expected_questions) + expect(subsection.answered_questions_count(case_log)).to eq(5) end it "has a question helpers for the unanswered questions" do expected_questions = %w[sex1 ecstat1 other_hhmemb propcode] - expect(sub_section.unanswered_questions(case_log).map(&:id)).to eq(expected_questions) + expect(subsection.unanswered_questions(case_log).map(&:id)).to eq(expected_questions) end end context "with a completed case log" do - let(:case_log) { FactoryBot.build(:case_log, :completed) } - let(:case_log_too) { FactoryBot.build(:case_log, :in_progress) } + let(:completed_case_log) { FactoryBot.build(:case_log, :completed) } it "has a status" do - expect(sub_section.status(case_log)).to eq(:completed) + expect(subsection.status(completed_case_log)).to eq(:completed) end it "has a status when optional fields are not filled" do case_log.update!({ propcode: nil }) case_log.reload - expect(sub_section.status(case_log)).to eq(:completed) + expect(subsection.status(completed_case_log)).to eq(:completed) end it "has status helpers" do - expect(sub_section.is_incomplete?(case_log)).to be(false) - expect(sub_section.is_started?(case_log)).to be(true) + expect(subsection.is_incomplete?(completed_case_log)).to be(false) + expect(subsection.is_started?(completed_case_log)).to be(true) end end end diff --git a/spec/models/organisation_spec.rb b/spec/models/organisation_spec.rb index efee529b5..bf5a4e50a 100644 --- a/spec/models/organisation_spec.rb +++ b/spec/models/organisation_spec.rb @@ -20,8 +20,8 @@ RSpec.describe Organisation, type: :model do context "with data protection confirmations" do before do - FactoryBot.create(:data_protection_confirmation, organisation:, confirmed: false) - FactoryBot.create(:data_protection_confirmation, organisation:) + FactoryBot.create(:data_protection_confirmation, organisation:, confirmed: false, created_at: Time.utc(2018, 0o6, 0o5, 10, 36, 49)) + FactoryBot.create(:data_protection_confirmation, organisation:, created_at: Time.utc(2019, 0o6, 0o5, 10, 36, 49)) end it "takes the most recently created" do diff --git a/spec/services/exports/case_log_export_service_spec.rb b/spec/services/exports/case_log_export_service_spec.rb index c250f4600..776e4408e 100644 --- a/spec/services/exports/case_log_export_service_spec.rb +++ b/spec/services/exports/case_log_export_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Exports::CaseLogExportService do let(:export_filepath) { "spec/fixtures/exports/case_logs.xml" } let(:export_file) { File.open(export_filepath, "r:UTF-8") } let(:expected_filename) { "core_2022_02_08/dat_core_2022_02_08_0001.xml" } - let(:case_log) { FactoryBot.create(:case_log, :completed) } + let!(:case_log) { FactoryBot.create(:case_log, :completed) } def replace_entity_ids(export_template) export_template.sub!(/\{id\}/, case_log["id"].to_s) @@ -18,7 +18,6 @@ RSpec.describe Exports::CaseLogExportService do before do Timecop.freeze(Time.new(2022, 2, 8, 16, 52, 15, "+00:00")) - case_log end it "generate an XML export file with the expected filename" do