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>'
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>'
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.
For some reason some of the superfluous attributes being assigned here have started throwing fatal errors in Rails 4 instead of being silently ignored...
A new custom email validator class was added to Spree::Order, and currently it fails every time (breaking lots of specs). This ugly hack disables it for now.
DEPRECATION WARNING: The :restrict option is deprecated. Please use :restrict_with_exception instead, which provides the same functionality. (called from block in <top (required)> at /home/user/Github/openfoodnetwork/app/models/spree/address_decorator.rb:4)
- A couple of cops moved into a different namespace.
- The target ruby version doesn't have to be specified, it's read from
.ruby-version which has been updated to Ruby 2.3.
- Some files were missing in the todo lists.
We also add logic to weight_per_variant so that we use variant.unit_value if final_weight_volume is not available but variant_unit is weight
Adapt some test case to test unit_value (in grams) instead of weight (in kgs)