Sha256: 2aaa8bbab807896d128117ebff66828bab8ef3d7d9ba34a10bde2d982c42b573

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe 'First Order promotion', type: :system do
  let!(:promotion) do
    FactoryBot.create(
      :promotion_with_first_order_rule,
      :with_order_adjustment,
      code: "FIRSTONEFREE",
      per_code_usage_limit: 10
    )
  end

  before do
    create(:store)
    product = FactoryBot.create(:product)
    visit spree.root_path
    click_link product.name
    click_button "Add To Cart"
  end

  it 'Adding first order promotion to cart and checking out as guest' do
    fill_in "Coupon code", with: "FIRSTONEFREE"
    click_button "Apply Code"
    expect(page).to have_content("The coupon code was successfully applied to your order")

    within("#cart_adjustments") do
      expect(page).to have_content("-$10.00")
    end
  end

  it 'Trying to reuse first order promotion', js: true do
    previous_user = FactoryBot.create(
      :user,
      email: "sam@tom.com"
    )
    _previous_order = create(:completed_order_with_totals, user: previous_user)
    fill_in "Coupon code", with: "FIRSTONEFREE"
    click_button "Apply Code"
    expect(page).to have_content("The coupon code was successfully applied to your order")
    click_on "Checkout"
    fill_in "Customer E-Mail", with: "sam@tom.com"
    fill_in_address
    click_on "Save and Continue"
    expect(page).to_not have_content("#summary-order-charges")
  end

  def fill_in_address
    address = "order_bill_address_attributes"
    fill_in "#{address}_firstname", with: "Ryan"
    fill_in "#{address}_lastname", with: "Bigg"
    fill_in "#{address}_address1", with: "143 Swan Street"
    fill_in "#{address}_city", with: "Richmond"
    select "United States of America", from: "#{address}_country_id"
    fill_in "#{address}_zipcode", with: "12345"
    fill_in "#{address}_phone", with: "(555) 555-5555"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solidus_starter_frontend-0.1.0 spec/system/first_order_promotion_spec.rb