Skip to content

Commit 3395334

Browse files
authored
Merge pull request #6367 from mamhoff/calculator-shared-examples
Move shared examples for promo calculators to lib/
2 parents 3660447 + 99bf07f commit 3395334

File tree

10 files changed

+13
-12
lines changed

10 files changed

+13
-12
lines changed

promotions/lib/solidus_promotions/testing_support/shared_examples.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
require "solidus_promotions/testing_support/shared_examples/product_condition"
44
require "solidus_promotions/testing_support/shared_examples/taxon_condition"
55
require "solidus_promotions/testing_support/shared_examples/option_value_condition"
6+
require "solidus_promotions/testing_support/shared_examples/promotion_calculator"

promotions/spec/shared_examples/calculator_shared_examples.rb renamed to promotions/lib/solidus_promotions/testing_support/shared_examples/promotion_calculator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
RSpec.shared_examples_for "a calculator with a description" do
3+
RSpec.shared_examples_for "a promotion calculator" do
44
describe ".description" do
55
subject { described_class.description }
66

promotions/spec/models/solidus_promotions/calculators/distributed_amount_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# frozen_string_literal: true
22

33
require "rails_helper"
4-
require "shared_examples/calculator_shared_examples"
54

65
RSpec.describe SolidusPromotions::Calculators::DistributedAmount, type: :model do
76
let(:calculator) { described_class.new(preferred_amount: 15, preferred_currency: currency) }
@@ -13,6 +12,8 @@
1312
let(:order) { create(:order_with_line_items, line_items_attributes: line_items_attributes) }
1413
let(:currency) { "USD" }
1514

15+
it_behaves_like "a promotion calculator"
16+
1617
context "applied to an order" do
1718
let(:line_items_attributes) { [{ price: 20 }, { price: 30 }, { price: 100 }] }
1819

promotions/spec/models/solidus_promotions/calculators/flat_rate_spec.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# frozen_string_literal: true
22

33
require "rails_helper"
4-
require "shared_examples/calculator_shared_examples"
54

65
RSpec.describe SolidusPromotions::Calculators::FlatRate, type: :model do
76
subject { calculator.compute(discountable) }
@@ -14,7 +13,7 @@
1413
)
1514
end
1615

17-
it_behaves_like "a calculator with a description"
16+
it_behaves_like "a promotion calculator"
1817

1918
context "compute_line_item" do
2019
let(:discountable) { mock_model(Spree::LineItem, order: order) }

promotions/spec/models/solidus_promotions/calculators/flexi_rate_spec.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# frozen_string_literal: true
22

33
require "rails_helper"
4-
require "shared_examples/calculator_shared_examples"
54

65
RSpec.describe SolidusPromotions::Calculators::FlexiRate, type: :model do
76
let(:calculator) do
@@ -26,7 +25,7 @@
2625
)
2726
end
2827

29-
it_behaves_like "a calculator with a description"
28+
it_behaves_like "a promotion calculator"
3029

3130
context "compute" do
3231
subject { calculator.compute(line_item) }

promotions/spec/models/solidus_promotions/calculators/percent_spec.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# frozen_string_literal: true
22

33
require "rails_helper"
4-
require "shared_examples/calculator_shared_examples"
54

65
RSpec.describe SolidusPromotions::Calculators::Percent, type: :model do
76
context "compute" do
@@ -29,5 +28,5 @@
2928
end
3029
end
3130

32-
it_behaves_like "a calculator with a description"
31+
it_behaves_like "a promotion calculator"
3332
end

promotions/spec/models/solidus_promotions/calculators/percent_with_cap_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
require "rails_helper"
44

55
RSpec.describe SolidusPromotions::Calculators::PercentWithCap, type: :model do
6+
it_behaves_like "a promotion calculator"
7+
68
context "applied to an order" do
79
let(:calculator) { described_class.new(preferred_percent: 15, preferred_max_amount: 50) }
810
let(:promotion) do

promotions/spec/models/solidus_promotions/calculators/tiered_flat_rate_spec.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
# frozen_string_literal: true
22

33
require "rails_helper"
4-
require "shared_examples/calculator_shared_examples"
54

65
RSpec.describe SolidusPromotions::Calculators::TieredFlatRate, type: :model do
76
let(:calculator) { described_class.new }
87

9-
it_behaves_like "a calculator with a description"
8+
it_behaves_like "a promotion calculator"
109

1110
describe "#valid?" do
1211
subject { calculator.valid? }

promotions/spec/models/solidus_promotions/calculators/tiered_percent_on_eligible_item_quantity_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
subject { promotion.benefits.first.calculator.compute(item) }
2929

30+
it_behaves_like "a promotion calculator"
31+
3032
# 2 Shirts at 50, 100 USD. 10 % == 10
3133
it { is_expected.to eq(10) }
3234

promotions/spec/models/solidus_promotions/calculators/tiered_percent_spec.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
# frozen_string_literal: true
22

33
require "rails_helper"
4-
require "shared_examples/calculator_shared_examples"
54

65
RSpec.describe SolidusPromotions::Calculators::TieredPercent, type: :model do
76
let(:calculator) { described_class.new }
87

9-
it_behaves_like "a calculator with a description"
8+
it_behaves_like "a promotion calculator"
109

1110
describe "#valid?" do
1211
subject { calculator.valid? }

0 commit comments

Comments
 (0)