Commit Graph

106 Commits

Author SHA1 Message Date
Matt-Yorkley
3ef7d2c9ff Remove master variant from product 2023-06-16 21:23:44 +01:00
Matt-Yorkley
bed2fe69f6 Update regression tests 2023-06-07 16:39:37 +01:00
Matt-Yorkley
bb73d70e57 Improve nil-safety in variant naming methods 2023-06-07 12:17:50 +01:00
Matt-Yorkley
a20277c3a7 Completely remove option_values and option_types from the codebase 2023-06-01 10:12:19 +01:00
Maikel Linke
87c4c5373b Spec more variant naming with realistic data 2023-05-12 14:10:54 +10:00
Maikel Linke
f70607259a Spec Variant#product_and_full_name with real data
Mocking skips a lot of code execution which we want to test as well.
2023-05-12 13:34:34 +10:00
Maikel Linke
ce180caad9 Test with in-memory data when possible
This should speed up specs but I observed only one second less run time.
2023-05-12 13:21:58 +10:00
Maikel Linke
01be934caf Reduce spec run time by not creating unused subject
The `variant` instance isn't used in all specs and doesn't need to be
created every time. This reduced run time from 1min5sec to 43sec on my
machine.
2023-05-12 13:21:58 +10:00
Maikel Linke
54c6559b97 Move Spree::Variant spec out of Spree module
I also discovered that some specs were just in the Spee module and not
within the `describe Variant` block. I moved them inside the block.
2023-05-12 13:21:19 +10:00
Nihal M. Kelanthodika
ddaac654ef Add specs for conversion of variant weight input into decimal/0.0 2022-01-31 17:43:15 +05:30
Matt-Yorkley
290e292dea Revert "Fixed inconsistency with display of unit name for products sold by item" 2021-12-07 13:24:12 +00:00
Nihal M. Kelanthodika
aefb580023 Update unit_to_display spec 2021-11-23 12:59:42 +05:30
Luis Ramos
23627c5453 Run rubocop -a (safe corrections) removing all exceptions so all possible fixes are applied
9290 issues fixed
2021-06-17 22:19:26 +01:00
Andy Brett
8e14e0e950 add variant spec 2021-04-15 09:43:22 -07:00
Matt-Yorkley
f3347229fb Add Variant#default_price test coverage for soft-deletion 2021-03-30 20:25:37 +01:00
Maikel
3e0547f563 Merge pull request #6926 from andrewpbrett/check-nan
Ensure unit_value is a number
2021-02-23 10:40:00 +11:00
Andy Brett
dec6d2189f add unit test for unit_value 2021-02-21 22:26:36 -08:00
Matt-Yorkley
42a5d7cdc7 Delete dead code Variant#set_option_value 2021-02-17 14:27:51 +00:00
Matt-Yorkley
81ac2c5add Delete code related to :cost_price field 2021-02-17 14:27:51 +00:00
Andy Brett
f746dec537 update spec 2021-02-04 13:52:45 -08:00
Andy Brett
c29d57b54e Merge pull request #6369 from Matt-Yorkley/broken-variants
Fix variant data inconsistencies
2021-01-13 11:10:44 -08:00
Andy Brett
fade1696e2 update variant spec based on new validation behavior 2020-12-22 19:46:47 -08:00
Luis Ramos
5b00868c6f Allow mutable strings in some specs 2020-12-03 06:38:24 -08:00
Luis Ramos
2b8f0abe49 Try some mass auto-correct adding frozen-string-literal to all specs 2020-12-03 06:38:24 -08:00
Matt-Yorkley
01a726d9bd Fix stubbing of stock totals
Recent changes to the way count_on_hand is summed in Spree::Stock::Quantifier mean the old method here will not work. Error:
```
  2) Spree::Variant#in_stock? when stock_items are not backorderable when stock_items out of stock return false if stock_items out of stock
     Failure/Error: expect(variant.in_stock?).to be_falsy

       expected: falsey value
            got: true
     # ./spec/models/spree/variant_spec.rb:241:in `block (5 levels) in <module:Spree>'
  ```
2020-11-27 13:59:46 +00:00
Matt-Yorkley
3d4f0ebb7b Ensure variants don't end up with invalid data when a product's variant_unit is changed
Fixes an issue where a product's variant_unit value is changed from "weight" to "items" and some of the product's variants can be left in an invalid state, which in turn breaks cloning of order cycles (with fatal errors).
2020-11-11 20:24:21 +00:00
Luis Ramos
4b8515358c Remove reference to FactoryGirl, it's FactoryBot that is used in OFN 2020-11-04 12:15:23 +00:00
Luis Ramos
d4e4669e49 Run transpec 2020-11-04 12:15:23 +00:00
Luis Ramos
e9f76cb339 Remove some dead code (Config.track_inventory_levels), remove variant.cost_price= so that localized number is seen, and fix specs 2020-11-04 12:15:23 +00:00
Luis Ramos
b68c5ee0f9 Remove dead code (prototypes) and fix specs 2020-11-04 12:15:23 +00:00
Luis Ramos
072cd2bd54 Run rubocop autocorrect in specs 2020-11-04 12:15:23 +00:00
Luis Ramos
8cb75fc6d8 Bring models from spree_core: Spree::Product and Spree::Variant!
EPIC COMMIT ALERT :-)
2020-11-04 12:15:23 +00:00
Arun Kumar Mohan
01d2c3cb9e Improve variant specs' performance 2020-10-09 22:11:34 -05:00
Luis Ramos
e413920335 Move both OptionValueNamer and VariantAndLineItemNaming to app/services/variant_units 2020-09-03 09:11:00 -07:00
Luis Ramos
f848a89a00 Rename update_attributes to update #rails4 2020-06-22 16:51:43 +01:00
Matt-Yorkley
53645517af Update deprecated #find_by_* methods 2020-02-22 11:06:51 +00:00
Matt-Yorkley
ab330e882e Remove product cache 2019-10-18 21:15:11 +01:00
Maikel Linke
48df853ff5 Skip cascading callbacks when touching distributors 2019-08-27 10:44:19 +10:00
Maikel Linke
2137a2addb Add spec for current bug
https://github.com/openfoodfoundation/openfoodnetwork/issues/4138
2019-08-27 10:44:19 +10:00
luisramos0
86b0d71c7e Result of rubocop auto-correct and rebuilding rubocop_manual_todo 2019-05-28 12:57:29 +01:00
luisramos0
04801e5c2e Run transpec in spec/models 2019-05-09 22:25:29 +01:00
luisramos0
527cfc1601 Merge branch 'master' into 2-0-stable-Mar29 2019-03-29 13:48:49 +00:00
Pau Perez
96b8c8ac2c Refresh products cache also on Variant#delete
Note that, as explained in
https://apidock.com/rails/v3.2.13/ActiveRecord/Relation/delete, `delete` does
not trigger callbacks and so it skips the products cache logic.

If we still want to avoid instantiating the AR object, we need to explicitly
call that logic for the cache to be up-to-date.
2019-03-22 09:57:15 +01:00
Maikel Linke
99f0be2f1c Remove unnecessary scope Variant.not_deleted
Spree made that scope default so that we don't need to define or call
it. There might be cases in which we were showing deleted variants and
now we are not, but I have not idea how to find them.

Related Spree commit:
- cd3add960e
2019-02-19 14:25:18 +11:00
Maikel Linke
cdb49f88b0 Move Variant deletion into its own service
This keeps the override of Spree's model leaner. More importantly, it
prepares us for using `destroy` instead of `delete`.

In the past, `Product#delete` soft-deleted the product, but didn't
delete the variants. When we use `Product#destroy` to soft-delete the
product, it will also call destroy on the variants. If the model doesn't
allow the deletion of the last variant, it will fail. So when a product
is deleted we want to allow the deletion of all variants. But the user
should not be allowed to delete the last variant. That's why I'm moving
the check to the controller level.

Related commits:

- e6c7acdff3
- 2b47c9145a
- b9f19d5777 (diff-412c5af2ec1ba9f6643f6df5a673c1d4R105)
2019-02-19 14:25:18 +11:00
luisramos0
4f992a18f7 Fix specs creating deleted variants
Spree checks that each price belongs to a variant
Since we were creating deleted variants, the price models couldnt see those
2018-11-05 10:43:10 +00:00
Pau Perez
0cbd967007 Remove in_stock dead scope
This makes the upgrade to Spree 2.0 a bit easier.
`spree_variants.count_on_hand` is removed in that version and this
column was used in the `in_stock` scope that we no longer use.
2018-03-28 12:13:34 +02:00
Rob Harrington
946046e53b Moving action for estimating standing_line_item prices into StandingLineItemController#build 2018-02-09 14:43:31 +11:00
Pau Perez
6cb038c362 Autocorrect rubocop Layout/BlockEndNewline cop 2018-02-01 09:52:53 +01:00
Pierre de Lacroix
f67a8c1f2d Add tests 2017-12-01 13:37:24 +11:00