David Cook
ef63c520c0
Aggregate errors
2023-08-22 11:40:58 +10:00
David Cook
a70f392654
Show error messages
...
It's kinda hard to test reflexes..
2023-08-22 11:40:58 +10:00
David Cook
a0dba001bc
Attempt to save all records in bulk update
...
Before, it would abort after the first invalid record, and it doesn't tell you about the others. This way you find out about all at once.
This affects the existing Bulk Edit Products screen, and can result in longer error messages than before. But I would argue that's a good thing.
I think this is technically optional for BUU at this point, but a helpful improvement.
2023-08-22 11:40:58 +10:00
David Cook
71c36585bc
Retain order when saving.
...
Perhaps this should be tested in the system spec too ("I can rename a product and still see it after saving"). But I'd like to find the compromise to avoid bulking up system specs too much. I think it's covered well enough by the reflex spec?
2023-08-22 11:40:58 +10:00
David Cook
6ffe1ec1ad
Retain the order of products in the collection
2023-08-22 11:40:58 +10:00
David Cook
ae3cd6f7e0
Add bulk_update product form for product name
...
(For now at least,) we use one big standard Rails form, and ModelSet to update each record.
Submitting with Reflex allows us to manage the loading state along with the rest of the page (although I would rather use the built in HTTP POST standard).
Aria-label makes it a bit easier for testing (and accessibility software of course!). Technically it should have been aria-labelledby="id_of_column_header" but that would have resulted in more HTML and processing, which seemed silly.
Best viewed with whitespace ignored.
2023-08-22 11:40:58 +10:00
David Cook
a98242e5b4
Capybara: enable_aria_label
2023-08-22 11:40:58 +10:00
David Cook
e37a499125
Merge pull request #11383 from jibees/11274-buu-as-a-single-producer-i-should-not-be-able-to-see-the-producer-dropdown
...
🚧 Products V3: Do not display "Producers" selector if only one is possible
2023-08-22 11:33:12 +10:00
Maikel Linke
31d87ca087
Show producer filter only when multiple options
...
Also introducing a view spec here because the code was incorrectly
refactored before. The execution of the view spec takes only 100ms
which is much faster than a system spec.
2023-08-22 10:00:06 +10:00
Konrad
241239ac68
Merge pull request #11379 from dacook/respond_to-not_found
...
Respond to all formats for "not found" error
2023-08-18 18:47:09 +02:00
Konrad
df7d42a420
Merge pull request #11352 from abdellani/remove-dead-code-bulk-invoice
...
Remove dead code related to bulk invoice printing
2023-08-18 18:14:01 +02:00
Konrad
f3b09508ff
Merge pull request #11347 from abdellani/fix-edit-order-button
...
fix cancel order button
2023-08-18 17:07:42 +02:00
Konrad
d8bc479a70
Merge pull request #11387 from jibees/10957-missing-translation-invalid-url
...
Admin, White Label: add translation for invalid URL in white label context
2023-08-18 15:59:39 +02:00
Jean-Baptiste Bellet
66a106b1c9
hide pagination for single page catalogue
...
+ update specs then
2023-08-17 09:26:10 +02:00
Maikel
6377149e18
Merge pull request #11400 from jibees/buu-update/refactor-tests
...
🚧 BUU: refactor/improve testing
2023-08-17 16:32:00 +10:00
Maikel
27dcad205e
Merge pull request #11337 from macanudo527/fix_rubocop_6
...
Fix autocorrect Rails Cops 2
2023-08-17 10:39:34 +10:00
Maikel
fd7b00ac7f
Merge pull request #11323 from mkllnk/dfc-import-context
...
Use known, statically cached DFC context
2023-08-16 11:35:57 +10:00
David Cook
b49de7d49e
Simplify spec
...
What if Zucchini didn't appear at all? Better to test that the two products appear on the same page, in the correct order.
2023-08-16 11:13:54 +10:00
Matt-Yorkley
70ba027603
Merge pull request #11221 from Matt-Yorkley/product-shipping-category
...
[Product Refactor] Shipping Category
2023-08-15 11:12:56 +01:00
David Cook
1155bd42ea
Reflex test to reveal collation sorting varies on different OS...
...
https://dba.stackexchange.com/questions/106964/why-is-my-postgresql-order-by-case-insensitive
Uncommented, the spec fails on macOS (BSD).. but succeeds in Ubuntu (Linux). Weird.
2023-08-15 08:36:22 +02:00
David Cook
0f086df12b
Setup StimulusReflex testing [add gem]
...
Surprisingly, the StimulusReflex framework [doesn't have many resources for testing](https://docs.stimulusreflex.com/appendices/testing.html ), but thankfully someone's made a gem.
2023-08-15 08:36:22 +02:00
David Cook
e816228959
Sort products by name in ascending order
...
The order is specified above in fetch_products. I'm guessing this line was unintentional?
Original requirment doesn't say ascending but I think it's safe to assume (issue#10694).
2023-08-15 08:36:22 +02:00
David Cook
6dbfb36e52
Spec: use url helpers
...
To be consistent with other specs.
2023-08-15 08:36:22 +02:00
David Cook
9a3820db4f
Tidy up spec
...
Although 'describe' and 'context' are the same simple constructs to label groups of examples, to humans they mean:
* Describe a particular domain of functionality
* Context means a different environment, IE something has been set up differently (generally with before and/or let blocks)
Also the default 'before' is :each, so we don't need to specify it.
2023-08-15 08:36:22 +02:00
David Cook
757ba27908
Optimise spec: only create objects when needed
...
Moving the 'clear filters' and 'no results' tests up into the first context.
2023-08-15 08:36:22 +02:00
David Cook
2a4d5af552
Remove redundant test
...
This is already covered in the following test.
2023-08-15 08:36:21 +02:00
Gaetan Craig-Riou
5a2155aeb7
Use the same sorting when choosing a line item to update
...
The presenter uses order.sorted_line_items, so use the same method
when picking up the line item to update.
2023-08-15 11:33:02 +10:00
Matt-Yorkley
97d9aadb69
Update specs
2023-08-14 21:02:48 +01:00
Matt-Yorkley
42d04b6581
Update OrderAvailableShippingMethods service
2023-08-14 21:02:47 +01:00
Matt-Yorkley
c18c525d9f
Save shipping category selection to new variant when creating a new product
2023-08-14 21:02:47 +01:00
Neal Chambers
ec49065739
Reword image_exists? to use Rails.public_path
2023-08-14 17:29:11 +09:00
Neal Chambers
94f1b89a9f
Safely autocorrect Rails/RootPublicPath
...
Inspecting 1484 files
.............................................................................................C........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.........................................................................................C..........C..........................................................................................................................................................................................................................................................................................................C....................................................................................................................................................................C...................C.............................................................C.C.......C....................
Offenses:
app/controllers/concerns/request_timeouts.rb:19:22: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
file: Rails.root.join("public/500.html"),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/spree/core/controller_helpers/common.rb:45:30: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
file: Rails.root.join("public/404.html"),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/controllers/api/v0/product_images_controller_spec.rb:13:22: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
let(:pdf_path) { Rails.root.join("public/Terms-of-service.pdf") }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/controllers/api/v0/terms_and_conditions_controller_spec.rb:15:31: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
let(:terms_file_path) { Rails.root.join("public/Terms-of-service.pdf") }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/models/terms_of_service_file_spec.rb:6:25: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
let(:pdf) { File.open(Rails.root.join("public/Terms-of-service.pdf")) }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/bulk_product_update_spec.rb:907:37: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
attach_file 'image-upload', Rails.root.join("public/500.jpg"), visible: false
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/enterprises/terms_and_conditions_spec.rb:27:30: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
let(:original_terms) { Rails.root.join("public/Terms-of-service.pdf") }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/enterprises/terms_and_conditions_spec.rb:28:29: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
let(:updated_terms) { Rails.root.join("public/Terms-of-ServiceUK.pdf") }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/consumer/shopping/checkout_spec.rb:94:9: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
Rails.root.join("public/Terms-of-service.pdf"),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/consumer/shopping/embedded_groups_spec.rb:18:9: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
Rails.root.join("public/embedded-group-preview.html")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/consumer/shopping/embedded_groups_spec.rb:26:9: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
Rails.root.join("public/embedded-group-preview.html")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/consumer/split_checkout_spec.rb:986:35: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
let(:system_terms_path) { Rails.root.join("public/Terms-of-service.pdf") }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/consumer/split_checkout_spec.rb:987:33: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
let(:shop_terms_path) { Rails.root.join("public/Terms-of-ServiceUK.pdf") }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1484 files inspected, 13 offenses detected, 13 offenses corrected
2023-08-14 17:29:11 +09:00
Neal Chambers
aaf2181768
Safely autocorrect Rails/FilePath
...
Inspecting 1484 files
.............................................................................................................................................................................................................................................................................................................C.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C....................C.....................................................................................................................................................................................................................................................................C.........................................................................................................................................................................................................C...........................................................................................................................................................
Offenses:
app/models/product_import/product_importer.rb:290:35: C: [Corrected] Rails/FilePath: Prefer Rails.root.join('path/to').
return unless @file.path == Rails.root.join('tmp', 'product_import').to_s
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/tasks/karma.rake:42:5: C: [Corrected] Rails/FilePath: Prefer Rails.root.join('path/to').
"#{Rails.root.join(I18n::JS::DEFAULT_EXPORT_DIR_PATH)}/translations.js"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/tasks/karma.rake:42:5: C: [Correctable] Style/RedundantInterpolation: Prefer to_s over string interpolation.
"#{Rails.root.join(I18n::JS::DEFAULT_EXPORT_DIR_PATH, 'translations.js')}"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/tasks/karma.rake:42:59: C: [Corrected] Style/StringLiteralsInInterpolation: Prefer single-quoted strings inside interpolations.
"#{Rails.root.join(I18n::JS::DEFAULT_EXPORT_DIR_PATH, "translations.js")}"
^^^^^^^^^^^^^^^^^
spec/base_spec_helper.rb:58:25: C: [Corrected] Rails/FilePath: Prefer Rails.root.join('path/to').
config.fixture_path = "#{::Rails.root}/spec/fixtures"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/base_spec_helper.rb:58:25: C: [Correctable] Style/RedundantInterpolation: Prefer to_s over string interpolation.
config.fixture_path = "#{Rails.root.join('spec/fixtures')}"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/base_spec_helper.rb:58:44: C: [Corrected] Style/StringLiteralsInInterpolation: Prefer single-quoted strings inside interpolations.
config.fixture_path = "#{Rails.root.join("spec/fixtures")}"
^^^^^^^^^^^^^^^
spec/models/content_configuration_spec.rb:15:19: C: [Corrected] Rails/FilePath: Prefer Rails.root.join('path/to').to_s.
File.exist?(File.join(Rails.root, 'public', default_url))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/models/content_configuration_spec.rb:15:19: C: [Corrected] Rails/RootPublicPath: Use Rails.public_path.
File.exist?(Rails.root.join('public', default_url).to_s)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/support/downloads_helper.rb:7:5: C: [Corrected] Rails/FilePath: Prefer Rails.root.join('path/to').
Rails.root.join("tmp", "capybara")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1484 files inspected, 10 offenses detected, 8 offenses corrected, 2 more offenses can be corrected with `rubocop -A`
2023-08-14 17:29:11 +09:00
Konrad
99daab07b7
Merge pull request #11297 from mkllnk/require-belongs-to--part2
...
Require belongs_to associations by default
2023-08-12 17:09:03 +02:00
Rachel Arnould
5afe45d922
Merge pull request #11382 from jibees/11273-buu-remove-new_products_page-feature-toggle
...
🔧 Remove `new_products_page` and all associated controllers/components/...
2023-08-11 11:43:49 +02:00
Gaetan Craig-Riou
9c9a6234e1
Per review, clean up voucher specs
...
Add explicit 'order.item_total' to make specs more readable
2023-08-11 15:41:45 +10:00
Gaetan Craig-Riou
054eac0822
Use a better describe
...
Co-authored-by: David Cook <david@redcliffs.net >
2023-08-11 15:41:45 +10:00
Gaetan Craig-Riou
3f63cfbc27
Fix Rubocop warning
2023-08-11 15:41:45 +10:00
Gaetan Craig-Riou
e8b374d0f2
Remove left over comment
2023-08-11 15:41:45 +10:00
Gaetan Craig-Riou
2828bd098d
Refactor VoucherAdjustment service
...
We are taking advantage of having a FlatRate and a PercentageRate
model to simplify the code a little
2023-08-11 15:41:34 +10:00
Gaetan Craig-Riou
29a38467d2
Fix admin pages to work with refactored vouchers
2023-08-11 14:54:23 +10:00
Gaetan Craig-Riou
46e04ca7ee
Refactor voucher: 3 percentage rate voucher
2023-08-11 14:54:23 +10:00
Gaetan Craig-Riou
def594ab81
Refactor voucher: 2 FlatRate voucher
2023-08-11 14:54:23 +10:00
Gaetan Craig-Riou
204f3933d0
Refactor voucher: 1 base voucher class
...
Refactor voucher to use a single table inheritance. It will simplify the
code and remove a bunch of conditional
2023-08-11 14:54:23 +10:00
Gaetan Craig-Riou
959e2308dd
Add system specs for percentage based voucher
...
Similar to tax included in price scenario, adds a test for percentage
based voucher to check the adjustments are recalculated when needed.
Plus fix tax incluced in price specs to use new factory
2023-08-11 14:51:36 +10:00
Gaetan Craig-Riou
cdb33aa0d0
Add calculation for percentage voucher
...
It include calculation for order with taxes included in the price
2023-08-11 14:30:48 +10:00
Gaetan Craig-Riou
cc9069e9c6
Add voucher type to admin screen
...
Plus specs
2023-08-11 14:19:26 +10:00
Gaetan Craig-Riou
619285ad4a
Add voucher_type to voucher
...
And update related specs
voucher_type doesn't do anything for now.
2023-08-11 14:19:25 +10:00
Gaetan Craig-Riou
1be8daaf86
Add specs to cover re calculation
...
It is important that the calculated voucher adjustments don't change
if they are recalculated and it is equally important that they are
updated if the order has changed
2023-08-11 14:19:25 +10:00
Maikel Linke
a34a351cee
Stabilise flaky spec with deterministic row order
2023-08-11 10:14:47 +10:00