Commit Graph

6330 Commits

Author SHA1 Message Date
Pau Perez
186801a1e2 Remove unused supplier_ids argument 2018-10-01 13:12:06 +02:00
Pau Perez
718f529ede Use nested module in test to improve readability 2018-10-01 13:12:06 +02:00
Pau Perez
f04fa4ed63 Do not treat ResetAbsent as a decorator anymore
This fully encapsulates it's logic and reduces its tight coupling with
EntryProcessor.
2018-10-01 13:12:06 +02:00
Pau Perez
95ae18a1ba Remove method delegation 2018-10-01 13:12:06 +02:00
Pau Perez
54d6bc5443 Don't use importing_into_inventory? in ResetAbsent
This completely decouples ResetAbsent from the particular strategy used.
2018-10-01 13:12:06 +02:00
Pau Perez
a10e58e20a Inject strategy_factory into ResetAbsent 2018-10-01 13:12:06 +02:00
Pau Perez
a9444b8909 Extract InventoryReset and Products strategies
Extract this strategy classes from ResetAbsent and move #reset there.
2018-10-01 13:12:06 +02:00
Pau Perez
23471346b6 Do not call ResetAbsent when preconditions not met 2018-10-01 13:12:06 +02:00
Pau Perez
a409353d37 Move import_settings query methods to Settings 2018-10-01 13:12:06 +02:00
Pau Perez
fd84bea463 Test that variants or overrides are actually reset 2018-10-01 13:12:06 +02:00
Pau Perez
b940f06238 Return early if reset_all_absent is not set
No need to go through half of the algorithm if the setting is not
enabled. It does not change per enterprise.

This also assumes "Previously we were updating both (products and inventory)
at the same time during one import, but now it's one or the other" in
Matt's words.
2018-10-01 13:12:06 +02:00
Pau Perez
c955e151b7 Pass enterprise ids as strs as current code does 2018-10-01 13:12:06 +02:00
Pau Perez
5ac3598550 Inject Settings object in ResetAbsent 2018-10-01 13:12:06 +02:00
Pau Perez
b5766a2dd9 Extract common conditional clauses
This also turns local vars into ivars so that the behaviour can be
thoroughly tested. These ivars are meant to be removed once this class
is refactored further. Now there's no other way to ensure its state.
2018-10-01 13:12:06 +02:00
Pau Perez
ed073e9750 Rely on Settings and don't access internal struct. 2018-10-01 13:12:06 +02:00
luisramos0
d2fe203c89 Fixes error undefined 'stock_location' by adding shipment to line_items in the following specs: features/admin/reports_spec, lib/open_food_network/bulk_coop_report_spec, lib/open_food_network/customers_report_spec, lib/open_food_network/order_cycle_management_report_spec, lib/open_food_network/orders_and_fulfillments_report_spec and lib/open_food_network/packing_report_spec 2018-10-01 11:57:36 +01:00
luisramos0
1ff1e32398 Making reports and reports_controller specs pending, 18 tests to be fixed in issue #2792 2018-09-30 00:30:49 +01:00
luisramos0
7dfce6c368 Making product import and product importer specs pending, 17 tests to be fixed in issue #2791 2018-09-30 00:21:43 +01:00
luisramos0
1d49edb194 Making SubsPlacementJobSpec pending, 6 tests to be fixed in issue #2793 2018-09-30 00:10:31 +01:00
luisramos0
50ac519dd5 Making BulkOrderUpdateSpec pending, 33 out of 34 tests to be fixed in issue #2790 2018-09-30 00:04:33 +01:00
luisramos0
e79d184db0 Making broken OrderSyncerSpec tests pending, 9 tests to be fixed in issue #2788 2018-09-29 23:42:35 +01:00
luisramos0
801c4d1cab Making SubsMailerSpec pending, 21 tests to be fixed in issue #2786 2018-09-29 23:31:11 +01:00
Pau Perez
663db47433 Move products_reset_count to ResetAbsent 2018-09-29 10:57:23 +02:00
Pau Perez
3150741849 Extract ResetAbsent class from EntryProcessor 2018-09-29 10:57:18 +02:00
luisramos0
6c05be9772 Fixed 22 out of 30 broken tests in bulk_order_management_spec.rb by providing target_shipment in test line_items. 2018-09-27 21:13:11 +01:00
Pau Perez
16badcd1b5 Setup Simplecov to have code coverage analysis
This enables code coverage analysis when running specs in your dev
environment. Simply run them as usual and you'll see a line like the
following at the end of the output:

  Coverage report generated for RSpec to /home/pau/dev/openfoodnetwork/coverage

Simply browse to coverage/index.html and the results in a web UI.

This is a useful tool that helps you decide if the tests you added are
enough or not.
2018-09-27 15:57:02 +02:00
Luis Ramos
f0183cd17e Merge pull request #2762 from luisramos0/2-0-order-model-spec
[Spree Upgrade] Fixed updates of order.shipping_method_id and improved order, stock_location and shipment factories
2018-09-27 13:43:58 +01:00
Pau Pérez Fabregat
060b3c55f1 Merge pull request #2751 from luisramos0/2-0-order-details
[Spree Upgrade] Refactored spree/order_details, extracted delivery and pickup details into separate partials
2018-09-27 14:30:42 +02:00
Matt-Yorkley
54b17ac701 Use Spree::Order.pending_payments and remove service 2018-09-27 13:04:56 +01:00
Maikel Linke
9dcc683dc0 Notify Bugsnag on sign-up errors
This may lead to more error reports than we want to see. A not existing
email address may cause Bugsnag to be notified. If this happens, we can
rescue form these specific errors and only report the rest.
2018-09-27 13:33:09 +10:00
Maikel Linke
17d951f99d Rescue from any sign-up errors
The most common failure would happen when sending the confirmation email
triggered by `user.save`. We rescue any errors here and give feedback to
the user.

This allows for immediate feedback when the user types an email address
that is not accepted by our mail server or the email setup is not
configured properly.
2018-09-27 13:33:08 +10:00
Maikel Linke
3ae073dce5 Convert specs to RSpec 3.7.1 syntax with Transpec
This conversion is done by Transpec 3.3.0 with the following command:
    transpec spec/controllers/user_registrations_controller_spec.rb

* 10 conversions
    from: obj.should
      to: expect(obj).to

* 7 conversions
    from: == expected
      to: eq(expected)

For more details: https://github.com/yujinakayama/transpec#supported-conversions
2018-09-27 13:33:08 +10:00
Maikel Linke
600c8fcd4c Send confirmation emails immediately
Using deferred methods on the user model breaks delayed jobs when the
user is deleted while the job still exists. We could create a proper job
referencing a user id for sending these emails instead. But since the
user has to wait for the confirmation email anyway, we can send it
within the current request. This should be revised if performance
becomes an issue.

Sending the email directly also has the advantage that we can tell the
user if emailing failed. See the following commits.

This change impacts a bunch of specs as we now need a working email
setup to create unconfirmed users. This commit introduces a custom
matcher to unify testing for confirmation emails.
2018-09-27 13:33:08 +10:00
Matt-Yorkley
2dcc8ea4bb Add spec for pending payments service 2018-09-25 10:05:32 +01:00
Maikel
51f9a0afa1 Merge pull request #2562 from Matt-Yorkley/pi/product_attributes
[Product Import] Product attributes
2018-09-25 11:36:03 +10:00
luisramos0
4f32a8efc2 Fixed shipment factory by making shipments unique per order and stock_location factory by making stock_location unique 2018-09-25 00:49:03 +01:00
Pau Perez
eb64569c9a Destroy all shipments when clearing order
Now we only clear the order's shipping_method, and in Spree 2.0 it can
have many shipments.
2018-09-24 15:25:33 +01:00
luisramos0
89114655fd Fixed shipping_method update in features/consumer/shopping/orders_spec, order.shipment is now updated instead of order.shipping_method_id 2018-09-24 15:13:36 +01:00
luisramos0
4476b88044 Fixed shipping_method update in models/spree/order_spec, order.shipment is now updated instead of order.shipping_method_id 2018-09-24 15:13:36 +01:00
luisramos0
99fff3d279 Fixed factory completed_order_with_fees by skipping a failing and unnecessary part of the checkout workflow
Fixed factory's shipment_with shipping_fees trait by ensuring only one shipping_rate in the shipment
2018-09-24 15:13:35 +01:00
Luis Ramos
08104c62be Merge pull request #2667 from luisramos0/2-0-ship-method-last-used-address
[Spree Upgrade] Adapt Address_Finder.last_used_ship_address to spree 2
2018-09-24 15:07:27 +01:00
Luis Ramos
0eb2854f8a Merge pull request #2680 from luisramos0/2-0-stable-x
[Spree Upgrade] Fixed inexistent order#shipping_method= in several specs
2018-09-24 15:07:04 +01:00
Pau Perez
f743b5f02f Extract Settings from Product Import processor
This encapsulates the data structure used by the entry processor to
check various settings. It still requires a lot of work to move more
logic to this new class.
2018-09-24 13:55:33 +02:00
Hugo Daniel
0dd1b1a976 Fix feature specs for shipping_methods 2018-09-24 12:40:59 +02:00
Pau Pérez Fabregat
b8417058b4 Merge pull request #2741 from coopdevs/refactor-checkout-process-bits
Refactor checkout process bits
2018-09-24 12:08:19 +02:00
Pau Pérez Fabregat
128ec1623a Merge pull request #2760 from luisramos0/2-0-admin-enterprise-spec
[Spree Upgrade] In admin enterprises spec, replacing select2_search with select2_select
2018-09-24 11:15:18 +02:00
Pau Pérez Fabregat
52a412a218 Merge pull request #2638 from coopdevs/unit-test-variant-stock
Unit test variant stock
2018-09-24 11:14:03 +02:00
Maikel
9d48ea7b62 Merge pull request #2759 from luisramos0/del_old_spec_helper
Removed deprecated spec helper have_select2_option and fixed its last usage
2018-09-24 11:25:51 +10:00
Maikel
26eb79f5f2 Merge pull request #2729 from luisramos0/2-0-ship-method-curr-order-ser
[Spree Upgrade] Replace order.shipping_method_id in current_order_serializer
2018-09-24 08:56:21 +10:00
luisramos0
a04e90d188 In admin enterprises spec, replacing select2_search with select2_select makes all tests pass. Also made screen size longer to avoid errors with overlaying components 2018-09-20 23:58:14 +01:00