Debounce ensures we don't get a million requests if the up/down buttons are clicked rapidly. The onwheel hack adds some protection against scrolling triggering the quantity up/down. See: https://stackoverflow.com/a/51076231
For some reason the order is in address state here instead of cart state when adding customer details. There's a conditional in the view which loads the customer selection dropdown that was not being triggered, so a customer could not be selected (and their existing address was not being filled out in the form).
Fixes:
1)
As an administrator
I want to manage orders
filling customer details
Failure/Error: expect(order.ship_address.lastname).to eq @customer.ship_address.lastname
NoMethodError:
undefined method `lastname' for nil:NilClass
# ./spec/features/admin/orders_spec.rb:179:in `block (2 levels) in <top (required)>'
The broadcasting of notifications didn't update properly and I couldn't
find a way to listen to $location updates. I replaced the three
intertwined directives with one controller and a bit more HTML code. Now
we have only one scope that listens to $location and all browser actions
like the back button is reflected in the page.
As nice side-effect, the menu links have now the right destination so
that you can copy the link and paste it into another browser window.
40 lines less code.
Fixes:
11) Order Management viewing a completed order when checking out as an anonymous guest allows the user to see the details
Failure/Error:
order.update_attributes!(
bill_address: bill_address,
ship_address: ship_address,
shipping_method_id: shipping_method.id
)
ActiveRecord::UnknownAttributeError:
unknown attribute: shipping_method_id
# ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# NoMethodError:
# undefined method `shipping_method_id=' for #<Spree::Order:0x00007f5e82a94d80>
# ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
12) Order Management viewing a completed order when logged in as the customer allows the user to see order details
Failure/Error:
order.update_attributes!(
bill_address: bill_address,
ship_address: ship_address,
shipping_method_id: shipping_method.id
)
ActiveRecord::UnknownAttributeError:
unknown attribute: shipping_method_id
# ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# NoMethodError:
# undefined method `shipping_method_id=' for #<Spree::Order:0x00007f5e83382708>
# ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
13) Order Management viewing a completed order when not logged in allows the user to see order details after login
Failure/Error:
order.update_attributes!(
bill_address: bill_address,
ship_address: ship_address,
shipping_method_id: shipping_method.id
)
ActiveRecord::UnknownAttributeError:
unknown attribute: shipping_method_id
# ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# NoMethodError:
# undefined method `shipping_method_id=' for #<Spree::Order:0x00007f5e8bafe6f0>
# ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
Fixes several errors such as:
104) UserRegistrationsController via ajax sets user.locale from cookie on create
Failure/Error: I18n.locale = spree_current_user.andand.locale || cookies[:locale] || I18n.default_locale
I18n::InvalidLocale:
"pt" is not a valid locale
# ./app/helpers/i18n_helper.rb:14:in `set_locale'
# ./spec/controllers/user_registrations_controller_spec.rb:56:in `block (3 levels) in <top (required)>'