-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2928 from geminimvp/first_order_promo_prereq
Remove user prereq from First Order promorule
- Loading branch information
Showing
4 changed files
with
72 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'spec_helper' | ||
|
||
RSpec.feature "First Order promotion" do | ||
given!(:promotion) do | ||
FactoryBot.create( | ||
:promotion_with_first_order_rule, | ||
:with_order_adjustment, | ||
code: "FIRSTONEFREE", | ||
per_code_usage_limit: 10 | ||
) | ||
end | ||
|
||
background do | ||
create(:store) | ||
product = FactoryBot.create(:product) | ||
visit spree.root_path | ||
click_link product.name | ||
click_button "Add To Cart" | ||
end | ||
|
||
scenario "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 | ||
|
||
scenario "Trying to reuse first order promotion" 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 |