Browse Source

Add tests

pull/2801/head
Manny Dinssa 7 months ago
parent
commit
cb318b112f
  1. 49
      spec/models/sales_log_spec.rb

49
spec/models/sales_log_spec.rb

@ -978,5 +978,54 @@ RSpec.describe SalesLog, type: :model do
end end
end end
end end
describe "#child_under_16_constraints!" do
let(:sales_log) { create(:sales_log, saledate: Time.zone.local(2024, 4, 1)) }
it "sets ecstat2 to 9 when age2 is under 16" do
sales_log.age2 = 14
sales_log.set_derived_fields!
expect(sales_log.ecstat2).to eq(9)
end
it "does not clear ecstat2 if it is not 9" do
sales_log.age2 = 22
sales_log.ecstat2 = 3
sales_log.set_derived_fields!
expect(sales_log.ecstat2).to eq(3)
end
it "clears ecstat3 if it is 9 and age3 is not under 16" do
sales_log.age3 = 22
sales_log.ecstat3 = 9
sales_log.set_derived_fields!
expect(sales_log.ecstat3).to be_nil
end
it "does not clear ecstat3 if it is not 9" do
sales_log.age3 = 22
sales_log.ecstat3 = 8
sales_log.set_derived_fields!
expect(sales_log.ecstat3).to eq(8)
end
context "when a user changes their answer" do
before do
sales_log.age2 = 14
sales_log.ecstat2 = 9
end
it "clears the working situation only when no longer a child under 16 and retains the new value" do
sales_log.set_derived_fields!
expect(sales_log.ecstat2).to eq(9)
sales_log.age2 = 22
sales_log.set_derived_fields!
expect(sales_log.ecstat2).to be_nil
sales_log.ecstat2 = 4
sales_log.set_derived_fields!
expect(sales_log.ecstat2).to eq(4)
end
end
end
end end
# rubocop:enable RSpec/MessageChain # rubocop:enable RSpec/MessageChain

Loading…
Cancel
Save