The version of this method in spree 2.1 will break our build
This way we simply bypass this fix in spree: https://github.com/spree/spree/pull/3669
We can get back to this in the future if we ever experience the mentioned bug
Fixes 5 specs, including:
11) Spree::CreditCardsController#update when the specified credit card is found and the card is owned by the user when the update completes successfully renders a serialized copy of the updated card
Failure/Error: object.cc_type.capitalize
NoMethodError:
undefined method `capitalize' for nil:NilClass
# ./app/serializers/api/credit_card_serializer.rb:6:in `brand'
# (eval):4:in `_fast_attributes'
# ./app/controllers/spree/credit_cards_controller.rb:26:in `update'
# ./spec/controllers/spree/credit_cards_controller_spec.rb:100:in `block (7 levels) in <top (required)>'
# ./spec/controllers/spree/credit_cards_controller_spec.rb:100:in `block (6 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# NoMethodError:
# undefined method `capitalize' for nil:NilClass
# ./app/serializers/api/credit_card_serializer.rb:6:in `brand'
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)>'
The output of this link helper has changed slightly. All the attributes are the same as before, but they seem to be in alphabetical order now.
Fixes:
69) Spree::BaseHelper#link_to_remove_fields returns an `a` tag followed by a hidden `input` tag
Failure/Error: expect(subject).to eq("<a href=\"#\" class=\"remove_fields icon_link with-tip icon-trash\" data-action=\"remove\" title=\"Remove\"><span class='text'>Hola</span></a><input type="hidden" name="_method" value="destroy">")
expected: "<a href=\"#\" class=\"remove_fields icon_link with-tip icon-trash\" data-action=\"remove\" title=\"...</span></a><input type="hidden" name="_method" value="destroy">"
got: "<a class=\"remove_fields icon_link with-tip icon-trash\" data-action=\"remove\" href=\"#\" title=\"...</span></a><input type="hidden" name="_method" value="destroy">"
(compared using ==)
# ./spec/helpers/spree/admin/base_helper_spec.rb:12:in `block (3 levels) in <top (required)>'
ActionController doesn't accept nil values for :id as a valid route request in Rails 4.
Fixes:
2) Api::OrdersController#show Resource not found when no order number is given
Failure/Error: get :show, id: nil
ActionController::UrlGenerationError:
No route matches {:action=>"show", :controller=>"api/orders", :id=>nil}
# ./spec/controllers/api/orders_controller_spec.rb:168:in `block (4 levels) in <module:Api>'
This is problably what will happen with subscriptions credit cards where payments will be authorized by the customer and the confirmation process on process_payments! will just capture the payment
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)>'
The headers in the request were not being populated correctly in the test, so the #api_key method was not functioning as intended.
Fixes:
48) Api::BaseController cannot make a request to the API with an invalid API key
Failure/Error: expect(json_response).to eq( "error" => "Invalid API key (fake_key) specified." )
expected: {"error"=>"Invalid API key (fake_key) specified."}
got: {"products"=>[]}
(compared using ==)
Diff:
@@ -1,2 +1,2 @@
-"error" => "Invalid API key (fake_key) specified.",
+"products" => [],
# ./spec/controllers/api/base_controller_spec.rb:40:in `block (3 levels) in <top (required)>'
This will happen if user deletes a saved credit card used previously. In this case, the admin payment details page will render empty details and the payment amount
Some depreacted calls to #find_by_* had previously been updated elsewhere, but the spec was still checking if the object received the #find_by_shipping_method_id message.
Fixes:
85) OrderShipment#select_shipping_method when order has a shipment when shipping_method_id is not valid for the order returns nil
Failure/Error: expect(shipment.shipping_rates).to receive(:find_by_shipping_method_id).with(invalid_shipping_method_id) { nil }
(#<ActiveRecord::Associations::CollectionProxy []>).find_by_shipping_method_id(1312)
expected: 1 time with arguments: (1312)
received: 0 times
# ./spec/models/concerns/order_shipment_spec.rb:53:in `block (5 levels) in <top (required)>'