Commit Graph

14467 Commits

Author SHA1 Message Date
Luis Ramos
a209b3e860 Merge pull request #4980 from Matt-Yorkley/3-0-destroy-route
[Spree 2.1] Line items destroy route
2020-03-12 16:28:05 +00:00
Matt-Yorkley
9a5452cd52 Delete test in line_items_controller_spec.rb
Rails 4 does not recognise requests to destroy routes without ids as valid routes.

Fixes:

 14) LineItemsController destroying a line item on a completed order without a line item id fails and raises an error
      Failure/Error: delete :destroy

      ActionController::UrlGenerationError:
        No route matches {:action=>"destroy", :controller=>"line_items"}
      # ./spec/controllers/line_items_controller_spec.rb:46:in `block (5 levels) in <top (required)>'
2020-03-12 14:15:00 +01:00
Pau Pérez Fabregat
62c35ef6e5 Merge pull request #4953 from luisramos0/sch_fix
Fix problem with misssing params in schedules controller
2020-03-12 12:57:27 +01:00
Pau Pérez Fabregat
f6a1a101a8 Merge pull request #4955 from luisramos0/auth_fix
[Spree 2.1] Fix authentication spec by adapting code to devise 3
2020-03-12 12:51:46 +01:00
Pau Pérez Fabregat
1cba857bdb Merge pull request #4933 from luisramos0/ent_helper
[Spree 2.1] Fix tag rule applicator in enterprises_helper
2020-03-12 12:49:18 +01:00
Pau Pérez Fabregat
568cba9d58 Merge pull request #4941 from luisramos0/devise
[Spree 2.1] Delete unnecessary code related to spree_auth_devise
2020-03-12 12:48:59 +01:00
Pau Pérez Fabregat
4b12d0be46 Merge pull request #4940 from luisramos0/ent_ctrl
[Spree 2.1] Fix issues in EnterprisesController
2020-03-12 12:48:28 +01:00
Pau Pérez Fabregat
de06eed945 Merge pull request #4911 from luisramos0/3-0-manifest
[Spree 2.1] Change Shipment#manifest to include deleted variants (again, this time in rails 4)
2020-03-12 12:47:45 +01:00
Luis Ramos
de2c6a8717 Revert previous commits and use collection_singular_ids=(ids) setter instead 2020-03-10 11:21:36 +00:00
Luis Ramos
014e22a7ad Fix problem with misssing params in schedules controller and adapt its spec 2020-03-09 16:04:59 +00:00
Luis Ramos
5ce4fec68b Add html to show the errors reported by devise 3 about password and password confirmation mismatch on user.errors[:password_confirmation] (instead of user.errors[:password]) 2020-03-09 15:48:45 +00:00
Luis Ramos
e5f05b4db9 Handle case where no user_ids are sent to the controller. Fixes original spec. 2020-03-07 20:10:32 +00:00
Luis Ramos
7daa68a8bc Adapt consumer/shopping/orders_spec to use an order with a nil user to test a guest checkout, which is what happens in the real checkout 2020-03-07 20:00:40 +00:00
Luis Ramos
56c29ab472 Make EnterprisesController inherit from Api::BaseController to fix authentication and fix problem with saving params[:user_ids] 2020-03-07 18:14:36 +00:00
Luis Ramos
ffe814ce6b Adapt specs to not use anonymous user
Api::BaseController#authenticate is already taking care of the unauthenticated use case when spree_current_user is nil
2020-03-07 18:14:07 +00:00
Luis Ramos
e4d307fe5e Remove dead code related to user management 2020-03-07 18:14:07 +00:00
Luis Ramos
4b21aaafc4 Convert ActiveRecord_Associations_CollectionProxy to array so that the modifications the tagRuleApplicator does on it will remain
Reject on ActiveRecord_Associations_CollectionProxy wont work
2020-03-06 13:51:53 +00:00
Pau Pérez Fabregat
4ea891ee2f Merge pull request #4834 from Matt-Yorkley/3-0-bind-message
[Spree 2.1] PG::ProtocolViolation: ERROR: bind message supplies 0 parameters...
2020-03-05 19:31:06 +01:00
Pau Pérez Fabregat
2a010a3233 Merge pull request #4919 from luisramos0/ship_ctrl
[Spree 2.1] Fix shipments admin/enterprises and api/enterprises controller specs
2020-03-05 19:07:10 +01:00
Luis Ramos
cfbec2accc Fix controller specs after PR #4675 adapted code to rails 4 finders 2020-03-05 11:55:13 +00:00
Luis Ramos
0f726c207f Fix shipments controller after PR #4675 adapted code to rails 4 finders 2020-03-04 14:47:32 +00:00
Luis Ramos
3b37fa8872 Move variant scoping from alias method into manifest method 2020-03-03 16:40:31 +00:00
Luis Ramos
5688de4936 Make Shipment#manifest work with deleted variants again
This makes the default variant scope in inventory_unit being used which includes deleted variants
2020-03-03 16:38:03 +00:00
Luis Ramos
d8a92eec4b Bring Shipment#manifest from spree as is 2020-03-03 16:37:00 +00:00
Luis Ramos
cf777b3fa2 Merge pull request #4882 from Matt-Yorkley/3-0-api-with-nil-id
[Spree 2.1] Fix spec setup in api/orders_controller_spec
2020-03-03 10:00:32 +00:00
Pau Pérez Fabregat
9980723060 Merge pull request #4880 from Matt-Yorkley/3-0-duplicate-validations
[Spree 2.1] Fix duplicate validations in payment methods and shipping methods
2020-03-03 10:44:40 +01:00
Pau Pérez Fabregat
f5ec11047a Merge pull request #4896 from Matt-Yorkley/3-0-cc_type
[Spree 2.1] Add missing :cc_type attribute to default :credit_card factory
2020-03-03 10:43:18 +01:00
Pau Pérez Fabregat
f50593ced8 Merge pull request #4883 from Matt-Yorkley/3-0-helper
[Spree 2.1] Fix expectation in helper spec
2020-03-03 10:42:28 +01:00
Pau Pérez Fabregat
b0962f65da Merge pull request #4872 from Matt-Yorkley/3-0-touch
[Spree 2.1] Touch on new records
2020-03-03 10:39:58 +01:00
Pau Pérez Fabregat
a47745c1cc Merge pull request #4866 from Matt-Yorkley/3-0-ofn-qz
[Spree 2.1] ofn-qz
2020-03-03 10:37:10 +01:00
Pau Pérez Fabregat
a60974c760 Merge pull request #4864 from luisramos0/oc_times
[Spree 2.1] Fix OrderCycle.earliest_closing_times spec
2020-03-03 10:36:35 +01:00
Pau Pérez Fabregat
e733761e8a Merge pull request #4847 from Matt-Yorkley/3-0-enterprise-user
[Spree 2.1] Fix #create_enterprise_user
2020-03-03 10:30:25 +01:00
Pau Pérez Fabregat
390cc61273 Merge pull request #4867 from Matt-Yorkley/3-0-gmappable
[Spree 2.1] acts_as_gmappable
2020-03-03 10:28:12 +01:00
Pau Pérez Fabregat
1e2e50ce54 Merge pull request #4888 from Matt-Yorkley/3-0-shipping-method-id
[Spree 2.1] Remove assignment of invalid attribute in test setup
2020-03-03 10:26:15 +01:00
Pau Pérez Fabregat
c48bd12440 Merge pull request #4843 from Matt-Yorkley/3-0-product-import
[Spree 2.1] Product import specs
2020-03-03 10:21:48 +01:00
Matt-Yorkley
6cb8bb2fc3 Add missing :cc_type attribute to default :credit_card factory
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'
2020-03-02 22:07:20 +01:00
Matt-Yorkley
13b8cfcd9c Remove assignment of invalid attribute in test setup
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)>'
2020-03-02 20:37:58 +01:00
Matt-Yorkley
0d08ad7d2e Fix expectation in helper spec
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>&lt;input type=&quot;hidden&quot; name=&quot;_method&quot; value=&quot;destroy&quot;&gt;")

        expected: "<a href=\"#\" class=\"remove_fields  icon_link with-tip icon-trash\" data-action=\"remove\" title=\"...</span></a>&lt;input type=&quot;hidden&quot; name=&quot;_method&quot; value=&quot;destroy&quot;&gt;"
             got: "<a class=\"remove_fields  icon_link with-tip icon-trash\" data-action=\"remove\" href=\"#\" title=\"...</span></a>&lt;input type=&quot;hidden&quot; name=&quot;_method&quot; value=&quot;destroy&quot;&gt;"

        (compared using ==)
      # ./spec/helpers/spree/admin/base_helper_spec.rb:12:in `block (3 levels) in <top (required)>'
2020-03-02 19:41:47 +01:00
Matt-Yorkley
0784b8263a Fix spec setup in api/orders_controller_spec
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>'
2020-03-02 19:22:43 +01:00
Matt-Yorkley
ed5351d23e Fix duplicate validations in payment methods and shipping methods
Updates the syntax to follow the recommended usage in the code comments of the ActiveModel #validates_with method.

Fixes:

  12) Spree::PaymentMethod raises errors when required fields are missing
      Failure/Error: expect(pm.errors.to_a).to eq(["Name can't be blank", "At least one hub must be selected"])

        expected: ["Name can't be blank", "At least one hub must be selected"]
             got: ["Name can't be blank", "At least one hub must be selected", "At least one hub must be selected"]

        (compared using ==)
      # ./spec/models/spree/payment_method_spec.rb:16:in `block (2 levels) in <module:Spree>'
2020-03-02 19:02:07 +01:00
Matt-Yorkley
a0999f5d58 Check #persisted? before calling #touch
Rails 4 now throws a fatal error if calling #touch on an object that hasn't been saved yet: c63cfc8722/activerecord/lib/active_record/persistence.rb (L957)

Fixes:

  41) Stock::Package#shipping_methods does not return shipping methods not used by the package's order distributor
      Failure/Error: distributors.each(&:touch)

      ActiveRecord::ActiveRecordError:
        can not touch on a new record object
      # ./app/models/spree/shipping_method_decorator.rb:81:in `touch_distributors'
      # ./spec/models/stock/package_spec.rb:39:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:17:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:32:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:7:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:44:in `block (3 levels) in <module:Stock>'

  42) Stock::Package#shipping_categories returns shipping categories that are not shipping categories of the order's products
      Failure/Error: distributors.each(&:touch)

      ActiveRecord::ActiveRecordError:
        can not touch on a new record object
      # ./app/models/spree/shipping_method_decorator.rb:81:in `touch_distributors'
      # ./spec/models/stock/package_spec.rb:39:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:17:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:32:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:7:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:50:in `block (3 levels) in <module:Stock>'
2020-03-01 18:40:15 +01:00
Matt-Yorkley
847a349a6b Fix geocoding in Rails 4 🎉
Responsibility for geocoding has moved from the `gmaps4rails` gem using `acts_as_taggable`, to the `geocoding` gem using `geocoded_by`. We already use this in the Address model.
2020-02-29 13:08:06 +01:00
Matt-Yorkley
7dbe0bd6b9 Use new branch of ofn-qz gem 2020-02-28 15:27:11 +01:00
Matt-Yorkley
5c526bf5cc Move definitions into constants and use #freeze 2020-02-28 13:08:17 +01:00
Matt-Yorkley
a9e6622639 Update product import #assign_attributes calls
For some reason some of the superfluous attributes being assigned here have started throwing fatal errors in Rails 4 instead of being silently ignored...
2020-02-28 13:08:17 +01:00
Luis Ramos
ddebd47e32 Merge pull request #4862 from Matt-Yorkley/3-0-paypal
[Spree 2.1] Re-introduce Paypal gem
2020-02-28 11:25:16 +00:00
Luis Ramos
56c6ef5e79 Merge pull request #4853 from Matt-Yorkley/3-0-base-controller
[Spree 2.1] Fix headers in api/base_controller spec
2020-02-28 11:21:16 +00:00
Matt-Yorkley
eef1574ebe Call #permit on params object in before_filter 2020-02-28 12:18:53 +01:00
Matt-Yorkley
95996dc11e Un-comment :credit_cards in routes 2020-02-28 12:18:53 +01:00
Matt-Yorkley
78e430613f Fix spree routes helper in payment_redirect.rb 2020-02-28 12:18:53 +01:00