Commit Graph

14449 Commits

Author SHA1 Message Date
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
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
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
Luis Ramos
4f3247c196 Revert "Temporarily remove broken specs"
This reverts commit c0dc999e0d.
2020-02-28 12:18:53 +01:00
Luis Ramos
427d3b7641 Revert "Comment spree_paypal express in all.js temporarily"
This reverts commit 26ba37b117.
2020-02-28 12:18:53 +01:00
Luis Ramos
61439a3750 Re-add paypal controller code 2020-02-28 12:18:53 +01:00
Matt-Yorkley
1f59bc8bef Use new branch of the paypal gem
This uses the `2-1-0-stable` branch of the paypal gem. It's the 2-1-stable branch plus a couple of old OFN modifications (from 2-0-stable), plus a minor modification to the gemspec to allow it to be used with spree_core `2.1.0`
2020-02-28 12:18:53 +01:00
Matt-Yorkley
cc1ab1bdb9 Fix issue with broken SQL fragments in scopes and nested subqueries
It looks like there are some issues with prepared statements here, where the resulting SQL contains something like: `WHERE "enterprise_roles"."user_id" = $1` in a subquery. The "$1" part is being lost somehow and isn't present if it's used in nested subqueries.

Example fixed spec (there are lots like this one):

  59) Spree::Admin::ReportsController Supplier Bulk Coop where I have granted P-OC to the distributor only shows product line items that I am supplying
      Failure/Error: produced_line_items.select("spree_line_items.id"))

      ActiveRecord::StatementInvalid:
        PG::ProtocolViolation: ERROR:  bind message supplies 0 parameters, but prepared statement "" requires 1
        : SELECT id FROM "spree_line_items"  WHERE "spree_line_items"."order_id" IN (SELECT id FROM "spree_orders"  WHERE (("spree_orders"."distributor_id" IN (SELECT enterprises.id FROM "enterprises" INNER JOIN "enterprise_roles" ON "enterprise_roles"."enterprise_id" = "enterprises"."id" WHERE (enterprise_roles.user_id = 947)) OR "spree_orders"."order_cycle_id" IN (SELECT id FROM "order_cycles"  WHERE "order_cycles"."coordinator_id" IN (SELECT "enterprises"."id" FROM "enterprises" INNER JOIN "enterprise_roles" ON "enterprises"."id" = "enterprise_roles"."enterprise_id" WHERE "enterprise_roles"."user_id" = $1)))))
      # ./app/services/permissions/order.rb:28:in `visible_line_items'
      # ./lib/open_food_network/reports/line_items.rb:16:in `list'
      # ./lib/open_food_network/bulk_coop_report.rb:54:in `table_items'
      # ./app/controllers/spree/admin/reports_controller.rb:264:in `order_grouper_table'
      # ./app/controllers/spree/admin/reports_controller.rb:101:in `bulk_coop'
      # ./spec/controllers/spree/admin/reports_controller_spec.rb:168:in `block (5 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # PG::ProtocolViolation:
      #   ERROR:  bind message supplies 0 parameters, but prepared statement "" requires 1
      #   ./app/services/permissions/order.rb:28:in `visible_line_items'
2020-02-28 12:16:55 +01:00
Luis Ramos
e5232c6b79 Merge pull request #4863 from Matt-Yorkley/3-0-gemfile-lock-fixed
[Spree 2.1] Fix Gemfile.lock
2020-02-28 11:15:24 +00:00
Luis Ramos
95415cddbd Merge pull request #4858 from Matt-Yorkley/3-0-embedded
[Spree 2.1] Fix embedded response headers
2020-02-28 11:12:16 +00:00
Matt-Yorkley
789ecbb8f2 Fix Gemfile.lock 2020-02-28 12:06:44 +01:00
Luis Ramos
0e607003c1 Fix problem in order cycles spec where miliseconds were not matching 2020-02-28 11:06:16 +00:00
Luis Ramos
1d0392e644 Merge pull request #4848 from Matt-Yorkley/3-0-test-locales
[Spree 2.1] Add 'pt' to list of available locales in test suite
2020-02-28 11:04:23 +00:00
Matt-Yorkley
02d46b7c51 Fix test in order_cycles_spec.rb 2020-02-28 11:51:09 +01:00
Matt-Yorkley
8672124f31 Add 'pt' to list of available locales in test suite
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)>'
2020-02-28 11:44:33 +01:00
Pau Pérez Fabregat
9440363a22 Merge pull request #4821 from luisramos0/3_val_issues
[Spree 2.1] Fix creation of enterprises/users in specs
2020-02-28 11:34:27 +01:00
Pau Pérez Fabregat
19dd5d0af3 Merge pull request #4855 from luisramos0/3-0-ship-method-services
[Spree 2.1] Fix ShippingMethod.services query
2020-02-28 11:31:53 +01:00
Pau Pérez Fabregat
3d453eb5ee Merge pull request #4861 from luisramos0/3-0-merge-master
[Spree 2.1] Merge master into 3-0-stable
2020-02-28 11:28:56 +01:00
Pau Pérez Fabregat
de9f14c305 Merge pull request #4849 from Matt-Yorkley/3-0-private-method
[Spree 2.1] Make private method #total_units public
2020-02-28 11:00:12 +01:00
Pau Pérez Fabregat
455241859e Merge pull request #4850 from Matt-Yorkley/3-0-shipments
[Spree 2.1] Fix expectations in order_shipment_spec
2020-02-28 10:58:58 +01:00
Luis Ramos
bf47d34434 Merge branch 'master' into 3-0-merge-master 2020-02-28 09:52:01 +00:00