Sha256: dbc50db2834697f49efca0ff8420285c2ac64473d1d4f482fb13cbf18528d071

Contents?: true

Size: 1.63 KB

Versions: 33

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe "Automatic promotions", type: :feature, js: true do
  let!(:store) { create(:store) }
  let!(:country) { create(:country, name: "United States of America", states_required: true) }
  let!(:state) { create(:state, name: "Alabama", country: country) }
  let!(:zone) { create(:zone) }
  let!(:shipping_method) { create(:shipping_method) }
  let!(:payment_method) { create(:check_payment_method) }
  let!(:product) { create(:product, name: "RoR Mug", price: 20) }

  let!(:promotion) do
    promotion = Spree::Promotion.create!(name: "$10 off when you spend more than $100", apply_automatically: true)

    calculator = Spree::Calculator::FlatRate.new
    calculator.preferred_amount = 10

    rule = Spree::Promotion::Rules::ItemTotal.create
    rule.preferred_amount = 100
    rule.save

    promotion.rules << rule

    action = Spree::Promotion::Actions::CreateAdjustment.create
    action.calculator = calculator
    action.save

    promotion.actions << action
  end

  context "on the cart page" do
    before do
      visit spree.root_path
      click_link product.name
      click_button "add-to-cart-button"
    end

    it "automatically applies the promotion once the order crosses the threshold" do
      fill_in "order_line_items_attributes_0_quantity", with: 10
      click_button "Update"
      expect(page).to have_content("Promotion ($10 off when you spend more than $100) -$10.00")
      fill_in "order_line_items_attributes_0_quantity", with: 1
      click_button "Update"
      expect(page).not_to have_content("Promotion ($10 off when you spend more than $100) -$10.00")
    end
  end
end

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
solidus_frontend-2.8.6 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.6.6 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.7.4 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.8.5 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.7.3 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.6.5 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.8.4 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.8.3 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.7.2 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.6.4 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.8.2 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.8.1 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.6.3 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.8.0 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.7.1 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend-2.6.2 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend_devise_token_auth-2.8.0.alpha.14 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend_devise_token_auth-2.8.0.alpha.13 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend_devise_token_auth-2.8.0.alpha.12 spec/features/automatic_promotion_adjustments_spec.rb
solidus_frontend_devise_token_auth-2.8.0.alpha.11 spec/features/automatic_promotion_adjustments_spec.rb