diff --git a/spec/models/calculator/weight_spec.rb b/spec/models/calculator/weight_spec.rb index 010abd1d0b..cebaba31cd 100644 --- a/spec/models/calculator/weight_spec.rb +++ b/spec/models/calculator/weight_spec.rb @@ -151,4 +151,32 @@ describe Calculator::Weight do end end end + + context "when variant_unit is 'items' and unit_value is zero" do + let(:product) { + create(:product, variant_unit: 'items', variant_unit_scale: nil, variant_unit_name: "bunch") + } + let(:variant1) { create(:variant, product: product, unit_value: 0, weight: nil) } + let(:variant2) { create(:variant, product: product, unit_value: 0, weight: 10.0) } + let(:line_item1) { create(:line_item, variant: variant1, quantity: 1) } + let(:line_item2) { create(:line_item, variant: variant2, quantity: 1) } + + before { subject.set_preference(:per_kg, 5) } + + it "returns NaN if variant.weight is not present" do + expect(subject.compute(line_item1).nan?).to be_truthy + end + + xit "uses zero weight if variant.weight is not present" do + expect(subject.compute(line_item1)).to eq 0 + end + + it "returns NaN if variant.weight is present" do + expect(subject.compute(line_item2).nan?).to be_truthy + end + + xit "uses the variant weight if variant.weight is present" do + expect(subject.compute(line_item2)).to eq 50.0 + end + end end