From 7abc0961e882ada81011c7d5f4ecc1eb494018e8 Mon Sep 17 00:00:00 2001 From: Rachael Booth Date: Tue, 26 Nov 2024 11:44:22 +0000 Subject: [PATCH] Update tests --- .../sales/soft_validations_spec.rb | 94 ++++++------------- spec/services/documentation_generator_spec.rb | 4 +- 2 files changed, 33 insertions(+), 65 deletions(-) diff --git a/spec/models/validations/sales/soft_validations_spec.rb b/spec/models/validations/sales/soft_validations_spec.rb index beb77c0b1..51f0d695a 100644 --- a/spec/models/validations/sales/soft_validations_spec.rb +++ b/spec/models/validations/sales/soft_validations_spec.rb @@ -4,66 +4,75 @@ RSpec.describe Validations::Sales::SoftValidations do let(:record) { build(:sales_log) } describe "income validations" do - context "when validating soft min" do + context "when validating soft range based on ecstat" do it "does not trigger for income1 if no income1 is given" do record.income1 = nil - expect(record).not_to be_income1_under_soft_min + expect(record).not_to be_income1_outside_soft_range_for_ecstat end - it "does not trigger for income1 if no ecstat1 is given" do + it "does not trigger for low income1 if no ecstat1 is given" do record.income1 = 50 record.ecstat1 = nil - expect(record).not_to be_income1_under_soft_min + expect(record).not_to be_income1_outside_soft_range_for_ecstat end it "does not trigger for income2 if no income2 is given" do record.income2 = nil - expect(record).not_to be_income2_under_soft_min + expect(record).not_to be_income2_outside_soft_range_for_ecstat end - it "does not trigger for income2 if no ecstat2 is given" do + it "does not trigger for low income2 if no ecstat2 is given" do record.income2 = 50 record.ecstat2 = nil - expect(record).not_to be_income2_under_soft_min + expect(record).not_to be_income2_outside_soft_range_for_ecstat end context "when log year is before 2025" do let(:record) { build(:sales_log, saledate: Time.zone.local(2024, 12, 25)) } - it "does not trigger for income1 if ecstat1 has no soft min" do + it "does not trigger for low income1 if ecstat1 has no soft min" do record.income1 = 50 record.ecstat1 = 4 - expect(record).not_to be_income1_under_soft_min + expect(record).not_to be_income1_outside_soft_range_for_ecstat end it "returns true if income1 is below soft min for ecstat1" do record.income1 = 4500 record.ecstat1 = 1 - expect(record).to be_income1_under_soft_min + expect(record).to be_income1_outside_soft_range_for_ecstat end it "returns false if income1 is >= soft min for ecstat1" do record.income1 = 1500 record.ecstat1 = 2 - expect(record).not_to be_income1_under_soft_min + expect(record).not_to be_income1_outside_soft_range_for_ecstat end it "does not trigger for income2 if ecstat2 has no soft min" do record.income2 = 50 record.ecstat2 = 8 - expect(record).not_to be_income2_under_soft_min + expect(record).not_to be_income2_outside_soft_range_for_ecstat end it "returns true if income2 is below soft min for ecstat2" do record.income2 = 999 record.ecstat2 = 3 - expect(record).to be_income2_under_soft_min + expect(record).to be_income2_outside_soft_range_for_ecstat end it "returns false if income2 is >= soft min for ecstat2" do record.income2 = 2500 record.ecstat2 = 5 - expect(record).not_to be_income2_under_soft_min + expect(record).not_to be_income2_outside_soft_range_for_ecstat + end + + it "does not trigger for being over maxima" do + record.ecstat1 = 1 + record.income1 = 200_000 + record.ecstat2 = 2 + record.income2 = 100_000 + expect(record).not_to be_income1_outside_soft_range_for_ecstat + expect(record).not_to be_income2_outside_soft_range_for_ecstat end end @@ -73,90 +82,49 @@ RSpec.describe Validations::Sales::SoftValidations do it "returns true if income1 is below soft min for ecstat1" do record.income1 = 13_399 record.ecstat1 = 1 - expect(record).to be_income1_under_soft_min + expect(record).to be_income1_outside_soft_range_for_ecstat end it "returns false if income1 is >= soft min for ecstat1" do record.income1 = 2600 record.ecstat1 = 2 - expect(record).not_to be_income1_under_soft_min + expect(record).not_to be_income1_outside_soft_range_for_ecstat end it "returns true if income2 is below soft min for ecstat2" do record.income2 = 2079 record.ecstat2 = 3 - expect(record).to be_income2_under_soft_min + expect(record).to be_income2_outside_soft_range_for_ecstat end it "returns false if income2 is >= soft min for ecstat2" do record.income2 = 520 record.ecstat2 = 5 - expect(record).not_to be_income2_under_soft_min - end - end - end - - context "when validating soft max based on ecstat" do - context "when log year is before 2025" do - let(:record) { build(:sales_log, saledate: Time.zone.local(2024, 12, 25)) } - - it "does not trigger" do - record.ecstat1 = 1 - record.income1 = 200_000 - record.ecstat2 = 2 - record.income2 = 100_000 - expect(record).not_to be_income1_over_soft_max_for_ecstat - expect(record).not_to be_income2_over_soft_max_for_ecstat - end - end - - context "when log year is 2025" do - let(:record) { build(:sales_log, saledate: Time.zone.local(2025, 12, 25)) } - - it "does not trigger for income1 if no income1 is given" do - record.income1 = nil - expect(record).not_to be_income1_over_soft_max_for_ecstat - end - - it "does not trigger for income1 if no ecstat1 is given" do - record.income1 = 50 - record.ecstat1 = nil - expect(record).not_to be_income1_over_soft_max_for_ecstat - end - - it "does not trigger for income2 if no income2 is given" do - record.income2 = nil - expect(record).not_to be_income2_over_soft_max_for_ecstat - end - - it "does not trigger for income2 if no ecstat2 is given" do - record.income2 = 50 - record.ecstat2 = nil - expect(record).not_to be_income2_over_soft_max_for_ecstat + expect(record).not_to be_income2_outside_soft_range_for_ecstat end it "returns true if income1 is above soft max for ecstat1" do record.income1 = 80_001 record.ecstat1 = 2 - expect(record).to be_income1_over_soft_max_for_ecstat + expect(record).to be_income1_outside_soft_range_for_ecstat end it "returns false if income1 is <= soft max for ecstat1" do record.income1 = 80_000 record.ecstat1 = 2 - expect(record).not_to be_income1_over_soft_max_for_ecstat + expect(record).not_to be_income1_outside_soft_range_for_ecstat end it "returns true if income2 is above soft max for ecstat2" do record.income2 = 50_001 record.ecstat2 = 6 - expect(record).to be_income2_over_soft_max_for_ecstat + expect(record).to be_income2_outside_soft_range_for_ecstat end it "returns false if income2 is <= soft max for ecstat2" do record.income2 = 50_000 record.ecstat2 = 6 - expect(record).not_to be_income2_over_soft_max_for_ecstat + expect(record).not_to be_income2_outside_soft_range_for_ecstat end end end diff --git a/spec/services/documentation_generator_spec.rb b/spec/services/documentation_generator_spec.rb index 6f4714d01..d214aaa9e 100644 --- a/spec/services/documentation_generator_spec.rb +++ b/spec/services/documentation_generator_spec.rb @@ -127,11 +127,11 @@ describe DocumentationGenerator do context "when the service is run for sales" do let(:log_type) { "sales" } - let(:all_validation_methods) { ["income2_under_soft_min?"] } + let(:all_validation_methods) { ["income2_outside_soft_range_for_ecstat?"] } it "creates new validation documentation records" do expect { described_class.new.describe_soft_validations(client, all_validation_methods, all_helper_methods, log_type) }.to change(LogValidation, :count) - expect(LogValidation.where(validation_name: "income2_under_soft_min?").count).to be_positive + expect(LogValidation.where(validation_name: "income2_outside_soft_range_for_ecstat?").count).to be_positive any_validation = LogValidation.first expect(any_validation.description).to eq("Validates the format.") expect(any_validation.field).not_to be_empty