From 4925e2088d5f844324888f8a67e8c442d07ffd49 Mon Sep 17 00:00:00 2001 From: David Cook Date: Thu, 18 Jul 2024 11:39:04 +1000 Subject: [PATCH] Test for corrupt data Ah ha, we found the problem. --- spec/services/weights_and_measures_spec.rb | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/spec/services/weights_and_measures_spec.rb b/spec/services/weights_and_measures_spec.rb index 22d337308c..3f6d742b33 100644 --- a/spec/services/weights_and_measures_spec.rb +++ b/spec/services/weights_and_measures_spec.rb @@ -58,6 +58,45 @@ RSpec.describe WeightsAndMeasures do expect(subject.system).to eq("custom") end end + + # In the event of corrupt data, we don't want an exception + context "corrupt data" do + it "when unit is invalid, scale is valid" do + allow(product).to receive(:variant_unit) { "blah" } + allow(product).to receive(:variant_unit_scale) { 1.0 } + expect(subject.system).to eq("custom") + end + + it "when unit is invalid, scale is nil" do + allow(product).to receive(:variant_unit) { "blah" } + allow(product).to receive(:variant_unit_scale) { nil } + expect(subject.system).to eq("custom") + end + + it "when unit is nil, scale is valid" do + allow(product).to receive(:variant_unit) { nil } + allow(product).to receive(:variant_unit_scale) { 1.0 } + expect(subject.system).to eq("custom") + end + + it "when unit is nil, scale is nil" do + allow(product).to receive(:variant_unit) { nil } + allow(product).to receive(:variant_unit_scale) { nil } + expect(subject.system).to eq("custom") + end + + it "when unit is valid, but scale is nil" do + allow(product).to receive(:variant_unit) { "weight" } + allow(product).to receive(:variant_unit_scale) { nil } + expect(subject.system).to eq("custom") + end + + pending "when unit is valid, but scale is 0" do + allow(product).to receive(:variant_unit) { "weight" } + allow(product).to receive(:variant_unit_scale) { 0.0 } + expect(subject.system).to eq("custom") + end + end end describe "#variant_unit_options" do