diff --git a/spec/controllers/split_checkout_controller_spec.rb b/spec/controllers/split_checkout_controller_spec.rb index 774be4ca76..c57710a2bb 100644 --- a/spec/controllers/split_checkout_controller_spec.rb +++ b/spec/controllers/split_checkout_controller_spec.rb @@ -237,7 +237,7 @@ describe SplitCheckoutController, type: :controller do end describe "Vouchers" do - let(:voucher) { Voucher.create(code: 'some_code', enterprise: distributor) } + let(:voucher) { create(:voucher, code: 'some_code', enterprise: distributor) } describe "adding a voucher" do let(:checkout_params) do diff --git a/spec/factories/voucher_factory.rb b/spec/factories/voucher_factory.rb new file mode 100644 index 0000000000..864e8d5331 --- /dev/null +++ b/spec/factories/voucher_factory.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :voucher do + enterprise { create(:distributor_enterprise) } + amount { rand(200.0) } + end +end diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 5b3d0ef71a..2ed17bb083 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -1432,7 +1432,7 @@ describe Spree::Order do end describe "#voucher_adjustments" do - let(:voucher) { Voucher.create(code: 'new_code', enterprise: order.distributor) } + let(:voucher) { create(:voucher, code: 'new_code', enterprise: order.distributor) } context "when no voucher adjustment" do it 'returns an empty array' do diff --git a/spec/models/voucher_spec.rb b/spec/models/voucher_spec.rb index 57dcac881c..d600913964 100644 --- a/spec/models/voucher_spec.rb +++ b/spec/models/voucher_spec.rb @@ -11,7 +11,7 @@ describe Voucher do end describe 'validations' do - subject { Voucher.new(code: 'new_code', enterprise: enterprise) } + subject { build(:voucher, code: 'new_code', enterprise: enterprise) } it { is_expected.to validate_presence_of(:code) } it { is_expected.to validate_uniqueness_of(:code).scoped_to(:enterprise_id) } @@ -20,7 +20,7 @@ describe Voucher do end describe '#compute_amount' do - subject { Voucher.create(code: 'new_code', enterprise: enterprise, amount: 10) } + subject { create(:voucher, code: 'new_code', enterprise: enterprise, amount: 10) } let(:order) { create(:order_with_totals) } @@ -41,7 +41,7 @@ describe Voucher do describe '#create_adjustment' do subject(:adjustment) { voucher.create_adjustment(voucher.code, order) } - let(:voucher) { Voucher.create(code: 'new_code', enterprise: enterprise, amount: 25) } + let(:voucher) { create(:voucher, code: 'new_code', enterprise: enterprise, amount: 25) } let(:order) { create(:order_with_line_items, line_items_count: 3, distributor: enterprise) } it 'includes the full voucher amount' do diff --git a/spec/requests/voucher_adjustments_spec.rb b/spec/requests/voucher_adjustments_spec.rb index 056526ee67..e663c1a6a9 100644 --- a/spec/requests/voucher_adjustments_spec.rb +++ b/spec/requests/voucher_adjustments_spec.rb @@ -6,7 +6,7 @@ describe VoucherAdjustmentsController, type: :request do let(:user) { order.user } let(:distributor) { create(:distributor_enterprise, with_payment_and_shipping: true) } let(:order) { create( :order_with_line_items, line_items_count: 1, distributor: distributor) } - let(:voucher) { Voucher.create(code: 'some_code', enterprise: distributor) } + let(:voucher) { create(:voucher, code: 'some_code', enterprise: distributor) } let!(:adjustment) { voucher.create_adjustment(voucher.code, order) } before do diff --git a/spec/services/voucher_adjustments_service_spec.rb b/spec/services/voucher_adjustments_service_spec.rb index d2b95cdb78..0fc08d7260 100644 --- a/spec/services/voucher_adjustments_service_spec.rb +++ b/spec/services/voucher_adjustments_service_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' describe VoucherAdjustmentsService do describe '.calculate' do let(:enterprise) { build(:enterprise) } - let(:voucher) { Voucher.create(code: 'new_code', enterprise: enterprise) } + let(:voucher) { create(:voucher, code: 'new_code', enterprise: enterprise, amount: 10) } context 'when voucher covers the order total' do subject { order.voucher_adjustments.first } diff --git a/spec/system/admin/vouchers_spec.rb b/spec/system/admin/vouchers_spec.rb index fb85ba5072..08acad4ccb 100644 --- a/spec/system/admin/vouchers_spec.rb +++ b/spec/system/admin/vouchers_spec.rb @@ -23,7 +23,7 @@ describe ' it 'lists enterprise vouchers' do # Given an enterprise with vouchers - Voucher.create!(enterprise: enterprise, code: voucher_code, amount: amount) + create(:voucher, enterprise: enterprise, code: voucher_code, amount: amount) # When I go to the enterprise voucher tab visit edit_admin_enterprise_path(enterprise) diff --git a/spec/system/consumer/split_checkout_spec.rb b/spec/system/consumer/split_checkout_spec.rb index 87741fcb8e..3b379b8aa5 100644 --- a/spec/system/consumer/split_checkout_spec.rb +++ b/spec/system/consumer/split_checkout_spec.rb @@ -720,8 +720,9 @@ describe "As a consumer, I want to checkout my order" do end context "with voucher available" do - let!(:voucher) { Voucher.create(code: 'some_code', enterprise: distributor, amount: amount) } - let(:amount) { 15 } + let!(:voucher) do + create(:voucher, code: 'some_code', enterprise: distributor, amount: 15) + end before do visit checkout_step_path(:payment) @@ -1112,7 +1113,7 @@ describe "As a consumer, I want to checkout my order" do end describe "vouchers" do - let(:voucher) { Voucher.create(code: 'some_code', enterprise: distributor, amount: 6) } + let(:voucher) { create(:voucher, code: 'some_code', enterprise: distributor, amount: 6) } before do # Add voucher to the order diff --git a/spec/system/consumer/split_checkout_tax_incl_spec.rb b/spec/system/consumer/split_checkout_tax_incl_spec.rb index ea51694aae..b4935aca7c 100644 --- a/spec/system/consumer/split_checkout_tax_incl_spec.rb +++ b/spec/system/consumer/split_checkout_tax_incl_spec.rb @@ -136,7 +136,9 @@ describe "As a consumer, I want to see adjustment breakdown" do end context "when using a voucher" do - let!(:voucher) { Voucher.create(code: 'some_code', enterprise: distributor, amount: 10) } + let!(:voucher) do + create(:voucher, code: 'some_code', enterprise: distributor, amount: 10) + end it "will include a tax included amount on the voucher adjustment" do visit checkout_step_path(:details) diff --git a/spec/system/consumer/split_checkout_tax_not_incl_spec.rb b/spec/system/consumer/split_checkout_tax_not_incl_spec.rb index d99dd604c7..2b734adfe4 100644 --- a/spec/system/consumer/split_checkout_tax_not_incl_spec.rb +++ b/spec/system/consumer/split_checkout_tax_not_incl_spec.rb @@ -144,7 +144,9 @@ describe "As a consumer, I want to see adjustment breakdown" do end context "when using a voucher" do - let!(:voucher) { Voucher.create(code: 'some_code', enterprise: distributor, amount: 10) } + let!(:voucher) do + create(:voucher, code: 'some_code', enterprise: distributor, amount: 10) + end it "will include a tax included amount on the voucher adjustment" do visit checkout_step_path(:details)