Browse Source

Update tests

pull/2779/head
Rachael Booth 1 year ago
parent
commit
7abc0961e8
  1. 94
      spec/models/validations/sales/soft_validations_spec.rb
  2. 4
      spec/services/documentation_generator_spec.rb

94
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

4
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

Loading…
Cancel
Save