Commit Graph

84 Commits

Author SHA1 Message Date
Maikel Linke
917e0ff01a Remove unnecessary storage of currency 2025-01-21 20:11:05 +01:00
Gaetan Craig-Riou
b0433bd8f5 Re add test for invalid cloned products
There is no easy way to make the original product invalid, but we can
make sure the cloned product will be invalid. The cloned product add
"COPe OF " in front of the product's name, so by starting with a name
that's long enough, the cloned product will have a name longer that 255
char and will then be invalid.
2024-10-14 15:01:18 +11:00
Gaetan Craig-Riou
144a09916c Use instance_double instead of double
Instance double, amongst other thing,  verifies that any methods being
stubbed would be present on an instance of the class
2024-10-14 15:01:18 +11:00
Gaetan Craig-Riou
00dfe6810f Fix ProductDuplicator
There isn't away I could think of to create an invalid product, so I
removed those test
2024-10-14 15:01:18 +11:00
David Cook
d799230440 Update controller to catch more specific error
We now know which errors to expect. We still let other unknown errors raise higher up, where they will be logged with BugSnag, and treated as internal_server_error.
2024-06-27 12:51:28 +10:00
David Cook
92bd7a5d37 Revert new product duplicator behaviour 2024-06-27 11:39:49 +10:00
David Cook
898ab08bab Add specs for invalid records
It turns out that the duplicator still raises an exception in some cases. Now I think I see why the the controller was catching the exceptions. At least now we know which exceptions to catch.
2024-06-27 11:39:49 +10:00
Ahmed Ejaz
0aea201d53 11987: update mocking save! to save 2024-06-26 16:31:16 +05:00
Maikel Linke
ac24725d6c Move mail spec precompile assets for it
Specs in `spec/lib` don't trigger asset compilation but this particular
spec uses a mailer and needs assets.
2024-05-17 14:35:08 +10:00
Maikel Linke
6317fe1b71 Disable RSpec monkey patching 2024-05-09 12:24:41 +10:00
Maikel Linke
5cd53e0b5e Clean up MailSettings spec
Best viewed with whitespace ignored.
2024-04-16 16:44:12 +10:00
Maikel Linke
a41019fbff Simplify SMTP auth method selection
Instead of using the auth method name, let's just not supply username
and password when we don't want to authenticate. The two affected
servers AU and CA don't have credentials set anyway. This is compatible.

The specs needed changing though.
2024-04-16 16:40:50 +10:00
Maikel Linke
d6f2a531aa Don't pass invalid auth method "None" to net-smtp
It's our magic word to not pass username and password on.
2024-04-16 16:18:49 +10:00
Matt-Yorkley
c01bab5f27 Wrap commonly-repeated calls to Spree::Config to reduce unnecessary cache reads
These config values are relatively static but in some cases they can be called many times in the same request (like rendering a report or a large list of line_items in BOM). These values will now only get fetched from Redis/Postgres once at most per request/job.
2024-03-26 13:39:16 +00:00
David Cook
7f77de89fc Explicitly load required file
This will be required if fixing FactoryBot/FactoryClassName
I'm not 100% sure about that rule yet, but figured this fix was worth keeping.
2024-02-28 09:37:34 +11:00
Mohamed ABDELLANI
c995f5dfbe set the price to 0 on the cloned product (Spree::Code::RroductDuplicator) 2023-11-28 16:15:12 +01:00
Neal Chambers
7ecd4a149b Fix Style/HashSyntax 2023-09-21 22:58:42 +09:00
Mohamed ABDELLANI
d4dbc0adb5 fix unit_value initialization on the product duplicator 2023-08-22 09:16:47 +01:00
Mohamed ABDELLANI
a9e4159839 validate unit_value > 0 on product model 2023-08-22 09:16:47 +01:00
Matt-Yorkley
321047d663 Update specs 2023-08-08 11:36:31 +01:00
Jean-Baptiste Bellet
1cf647e04b Avoid line-break by wrapping into nowrap element 2023-07-17 14:00:48 +02:00
Matt-Yorkley
0f253bb2a0 Blank out product SKU when cloning a product
This was effectively being done before for the product's sku (stored on the master variant) via the #duplicate_variant method, but now it needs to be done explicitly on the product in #duplicate_product
2023-06-16 21:26:28 +01:00
Matt-Yorkley
3ef7d2c9ff Remove master variant from product 2023-06-16 21:23:44 +01:00
Matt-Yorkley
6b9b5ea347 Stop storing unit_value and unit_description on master variant 2023-06-16 21:21:40 +01:00
Matt-Yorkley
a20277c3a7 Completely remove option_values and option_types from the codebase 2023-06-01 10:12:19 +01:00
Gaetan Craig-Riou
d715b6b3bb Spec fix LocalisedNumber validation to allow negative number
As part of this PR https://github.com/openfoodfoundation/openfoodnetwork/pull/10329
LocalisedNumber validation was tightened, but that means negative number
were not valid anymore.

This commit has been cherry-picked after this fix has already been
applied. Now we just change the order of characters in the regex because
humans are used to reading the minus at the beginning of the number. But
this change doesn't change the logic at all.
2023-05-15 10:55:59 +10:00
Konrad
b60a6fbd05 Merge pull request #10329 from thejwuscript/9861-improve-input-validation
Improve input validation on new and edit Payment Method pages
2023-05-03 16:11:21 +02:00
Maikel Linke
dae8703b02 Remove unused feature to intercept emails
This option came from Spree and we never used it. The config input field
is disabled in the admin interface and I checked our managed databases.

I don't think that we will want this feature in the future either.
Staging sends unmodified emails which is more realistic and we haven't
had a use case to intercept those emails. There's still the BCC option
if we need additional access.
2023-04-26 13:50:31 +10:00
Maikel Linke
9b3cfe80ff Remove useless clearing of test emails
They are cleared by the test environment anyway.
2023-04-20 13:35:40 +10:00
Maikel Linke
04d33adaf2 Remove duplicate declaration of test mail delivery
Our test environment sets the mail delivery method already. We don't
have to do it in individual spec files.
2023-04-20 13:28:59 +10:00
Maikel Linke
915bd19d7b Remove useless email test setup
We always deliver emails these days.
2023-04-20 12:18:04 +10:00
James Wu
7af26e6579 Add errors for invalid input with number localization enabled 2023-04-18 09:39:39 +10:00
Maikel Linke
84daa046ca Update I18n spec to Rails 7 2023-03-20 10:41:28 +11:00
Maikel Linke
4f15b5a65b Specify raised error in spec and avoid warning
Before it said:

```
WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<RuntimeError: Cannot use t(".legacy_translation") shortcut because path is not available>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`.
```
2023-02-28 15:44:18 +11:00
Maikel Linke
bf1cbe615f Remove unused Spree translation checker
If we wanted similar functionality in the future then we would implement
it differently. At the moment, it's just unused code.
2023-02-28 15:44:18 +11:00
Mohamed ABDELLANI
41440af533 test if product's variant is duplicated properly 2022-10-25 11:28:16 +01:00
Mohamed ABDELLANI
826b1e95ef add a product variant. 2022-10-25 11:27:51 +01:00
Mohamed ABDELLANI
6cabbee1a2 rename new_variant double to new_master_variant 2022-10-25 11:27:14 +01:00
Mohamed ABDELLANI
11bc5c775c rename the variant double to master_variant 2022-10-25 11:26:43 +01:00
Matt-Yorkley
c0ee72319f Remove dead code: Product#variants?
This only makes sense in the context of Products which only have "master" variants, and we removed that option a while back.

Remove #variants? check from ProductStock concern
2022-10-19 16:30:12 +11:00
Maikel Linke
b7efa1b018 Replace Paperclip on Spree::Image 2022-06-01 17:16:55 +10:00
Matt-Yorkley
2d69810c5d Convert CalculatedAdjustments into a proper Concern and remove class_eval 2021-07-24 21:28:13 +01:00
Matt-Yorkley
15edb5b13b Remove more uses of adjustment source association in tests 2021-04-14 12:01:21 +01:00
Matt-Yorkley
b6038c01a3 Remove references to Adjustment source 2021-04-14 12:01:21 +01:00
Matt-Yorkley
fcb8145a6c Bring in changes to Adjustment#update! and CalculatedAdjustments#update_adjustment 2021-03-30 16:39:40 +01:00
Maikel Linke
0980b81742 Raise errors in specs with missing translations
The previous mechanism didn't seem to work and newer Rails versions have
an easier config for this now.

Also fixing all i18n errors which were now failing specs.
2021-03-30 17:08:17 +11:00
Pau Perez
0eb14bc0a4 Do not modify the HTML returned by Money gem
It was due to these lines that we were returning a broken HTML tag but
also, there's no need to remove blanks.
2021-03-10 16:29:09 +01:00
Pau Perez
96bcde61a3 Fix Money deprecation warning with :html_wrap
This fixes the following deprecation warning

```
[DEPRECATION] `html` is deprecated - use `html_wrap` instead. Please
note that `html_wrap` will wrap all parts of currency and if you use
`with_currency` option, currency element class changes from `currency`
to `money-currency`.
```
2021-03-08 13:03:00 +01:00
Pau Perez
485449e289 Fix Money gem deprecation warning with :format
This removes millions of deprecation warnings like the following

```
[DEPRECATION] `symbol_position: :before` is deprecated - you can replace it with `format: %u %n`
```

from the build. It gets printed every time a `Spree::Money` is instantiated.

This should result in a non-negligible speed up of the test suite.
2021-03-08 13:03:00 +01:00
Pau Perez
e355a00724 Remove redundant spec context
This is already tested by the top-most before block and besides, we
there's no OFN in Japan. We don't need to test all supported currencies
but ensure that the various arguments work as intended.
2021-03-08 12:52:41 +01:00