solidus_backend 2.10.2 → 2.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +4 -1
  3. data/app/assets/javascripts/spree/backend/adjustments.js +1 -1
  4. data/app/assets/javascripts/spree/backend/admin.js +18 -29
  5. data/app/assets/javascripts/spree/backend/collections/states.js +1 -1
  6. data/app/assets/javascripts/spree/backend/components/selectable_table.js +5 -0
  7. data/app/assets/javascripts/spree/backend/components/selectable_table/return_items.js +5 -0
  8. data/app/assets/javascripts/spree/backend/components/selectable_table/summary.js +7 -0
  9. data/app/assets/javascripts/spree/backend/components/sortable_table.js +31 -25
  10. data/app/assets/javascripts/spree/backend/models/order.js +3 -3
  11. data/app/assets/javascripts/spree/backend/models/payment.js +1 -1
  12. data/app/assets/javascripts/spree/backend/models/shipment.js +1 -1
  13. data/app/assets/javascripts/spree/backend/models/stock_item.js +1 -1
  14. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +2 -2
  15. data/app/assets/javascripts/spree/backend/option_value_picker.js +2 -2
  16. data/app/assets/javascripts/spree/backend/product_picker.js +2 -2
  17. data/app/assets/javascripts/spree/backend/routes.js +40 -21
  18. data/app/assets/javascripts/spree/backend/shipments.js +5 -5
  19. data/app/assets/javascripts/spree/backend/shipping_methods/stock_locations_picker.js +18 -0
  20. data/app/assets/javascripts/spree/backend/stock_management.js +4 -2
  21. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +2 -2
  22. data/app/assets/javascripts/spree/backend/taxons.js +3 -3
  23. data/app/assets/javascripts/spree/backend/templates/index.js +2 -0
  24. data/app/assets/javascripts/spree/backend/templates/orders/customer_details/autocomplete.hbs +2 -2
  25. data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +5 -1
  26. data/app/assets/javascripts/spree/backend/templates/tables/return_item_sum_amount.hbs +7 -0
  27. data/app/assets/javascripts/spree/backend/templates/tables/selectable_label.hbs +6 -0
  28. data/app/assets/javascripts/spree/backend/user_picker.js +3 -4
  29. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +2 -2
  30. data/app/assets/javascripts/spree/backend/views/cart/empty_cart_button.js +2 -2
  31. data/app/assets/javascripts/spree/backend/views/index.js +4 -0
  32. data/app/assets/javascripts/spree/backend/views/order/address.js +1 -1
  33. data/app/assets/javascripts/spree/backend/views/order/customer_select.js +2 -3
  34. data/app/assets/javascripts/spree/backend/views/order/details_adjustments.js +4 -1
  35. data/app/assets/javascripts/spree/backend/views/stock/edit_stock_item_row.js +4 -0
  36. data/app/assets/javascripts/spree/backend/views/tables/return_items.js +9 -0
  37. data/app/assets/javascripts/spree/backend/views/tables/selectable_table.js +70 -0
  38. data/app/assets/javascripts/spree/backend/views/tables/selectable_table/sum_return_item_amount.js +32 -0
  39. data/app/assets/javascripts/spree/backend/views/tables/selectable_table/summary.js +45 -0
  40. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +4 -5
  41. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +5 -1
  42. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +4 -0
  43. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +1 -0
  44. data/app/controllers/spree/admin/base_controller.rb +6 -0
  45. data/app/controllers/spree/admin/cancellations_controller.rb +2 -0
  46. data/app/controllers/spree/admin/customer_returns_controller.rb +4 -4
  47. data/app/controllers/spree/admin/images_controller.rb +2 -1
  48. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -0
  49. data/app/controllers/spree/admin/orders_controller.rb +7 -2
  50. data/app/controllers/spree/admin/payments_controller.rb +3 -1
  51. data/app/controllers/spree/admin/product_properties_controller.rb +1 -1
  52. data/app/controllers/spree/admin/products_controller.rb +18 -24
  53. data/app/controllers/spree/admin/promotion_codes_controller.rb +9 -4
  54. data/app/controllers/spree/admin/refunds_controller.rb +20 -0
  55. data/app/controllers/spree/admin/resource_controller.rb +27 -7
  56. data/app/controllers/spree/admin/return_authorizations_controller.rb +1 -1
  57. data/app/controllers/spree/admin/root_controller.rb +1 -1
  58. data/app/controllers/spree/admin/search_controller.rb +1 -2
  59. data/app/controllers/spree/admin/stock_items_controller.rb +6 -5
  60. data/app/controllers/spree/admin/stock_locations_controller.rb +4 -0
  61. data/app/controllers/spree/admin/stock_movements_controller.rb +7 -0
  62. data/app/controllers/spree/admin/taxons_controller.rb +12 -1
  63. data/app/controllers/spree/admin/users/api_key_controller.rb +29 -0
  64. data/app/controllers/spree/admin/users_controller.rb +37 -20
  65. data/app/controllers/spree/admin/variants_controller.rb +4 -2
  66. data/app/controllers/spree/admin/zones_controller.rb +1 -1
  67. data/app/helpers/spree/admin/base_helper.rb +4 -0
  68. data/app/helpers/spree/admin/customer_returns_helper.rb +1 -1
  69. data/app/helpers/spree/admin/navigation_helper.rb +1 -1
  70. data/app/helpers/spree/admin/orders_helper.rb +8 -4
  71. data/app/helpers/spree/admin/stock_movements_helper.rb +8 -4
  72. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +2 -3
  73. data/app/views/spree/admin/images/index.html.erb +25 -21
  74. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +8 -1
  75. data/app/views/spree/admin/option_types/edit.html.erb +3 -1
  76. data/app/views/spree/admin/orders/customer_details/_form.html.erb +13 -13
  77. data/app/views/spree/admin/orders/index.html.erb +23 -13
  78. data/app/views/spree/admin/payment_methods/_form.html.erb +7 -2
  79. data/app/views/spree/admin/payments/index.html.erb +3 -1
  80. data/app/views/spree/admin/prices/_master_variant_table.html.erb +3 -3
  81. data/app/views/spree/admin/prices/_table.html.erb +3 -3
  82. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +7 -2
  83. data/app/views/spree/admin/product_properties/index.html.erb +14 -2
  84. data/app/views/spree/admin/products/_form.html.erb +13 -2
  85. data/app/views/spree/admin/products/index.html.erb +2 -2
  86. data/app/views/spree/admin/promotion_codes/index.html.erb +1 -1
  87. data/app/views/spree/admin/promotions/_actions.html.erb +1 -1
  88. data/app/views/spree/admin/promotions/_activations_new.html.erb +1 -1
  89. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  90. data/app/views/spree/admin/promotions/edit.html.erb +2 -2
  91. data/app/views/spree/admin/promotions/index.html.erb +12 -5
  92. data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -10
  93. data/app/views/spree/admin/return_authorizations/index.html.erb +1 -1
  94. data/app/views/spree/admin/search/users.json.jbuilder +15 -1
  95. data/app/views/spree/admin/shared/_address.html.erb +6 -6
  96. data/app/views/spree/admin/shared/_address_form.html.erb +15 -8
  97. data/app/views/spree/admin/shared/_order_submenu.html.erb +4 -4
  98. data/app/views/spree/admin/shared/_payments_tabs.html.erb +1 -1
  99. data/app/views/spree/admin/shared/_settings_checkout_tabs.html.erb +5 -5
  100. data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +6 -6
  101. data/app/views/spree/admin/shared/_shipping_tabs.html.erb +3 -3
  102. data/app/views/spree/admin/shared/_taxes_tabs.html.erb +2 -2
  103. data/app/views/spree/admin/shared/preference_fields/_encrypted_string.html.erb +12 -0
  104. data/app/views/spree/admin/shipping_methods/_form.html.erb +18 -0
  105. data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
  106. data/app/views/spree/admin/stock_locations/edit.html.erb +1 -1
  107. data/app/views/spree/admin/stock_locations/index.html.erb +3 -1
  108. data/app/views/spree/admin/stock_movements/index.html.erb +30 -1
  109. data/app/views/spree/admin/store_credits/index.html.erb +1 -1
  110. data/app/views/spree/admin/stores/_form.html.erb +6 -0
  111. data/app/views/spree/admin/style_guide/topics/tables/_building_tables.html.erb +27 -3
  112. data/app/views/spree/admin/tax_categories/_form.html.erb +1 -0
  113. data/app/views/spree/admin/users/_form.html.erb +2 -2
  114. data/app/views/spree/admin/users/_tabs.html.erb +1 -1
  115. data/app/views/spree/admin/users/edit.html.erb +4 -4
  116. data/app/views/spree/admin/users/items.html.erb +5 -3
  117. data/app/views/spree/admin/users/orders.html.erb +5 -3
  118. data/app/views/spree/admin/variants/_table_filter.html.erb +1 -1
  119. data/app/views/spree/admin/variants/index.html.erb +2 -2
  120. data/config/initializers/form_builder.rb +2 -2
  121. data/lib/spree/backend/engine.rb +0 -2
  122. data/lib/spree/backend_configuration.rb +14 -1
  123. data/solidus_backend.gemspec +4 -4
  124. metadata +24 -123
  125. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +0 -35
  126. data/script/rails +0 -10
  127. data/spec/controllers/spree/admin/base_controller_spec.rb +0 -26
  128. data/spec/controllers/spree/admin/cancellations_controller_spec.rb +0 -83
  129. data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +0 -235
  130. data/spec/controllers/spree/admin/locale_controller_spec.rb +0 -45
  131. data/spec/controllers/spree/admin/missing_products_controller_spec.rb +0 -18
  132. data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -128
  133. data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -408
  134. data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -95
  135. data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -194
  136. data/spec/controllers/spree/admin/prices_controller_spec.rb +0 -45
  137. data/spec/controllers/spree/admin/product_properties_controller_spec.rb +0 -71
  138. data/spec/controllers/spree/admin/products_controller_spec.rb +0 -270
  139. data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +0 -23
  140. data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +0 -32
  141. data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +0 -36
  142. data/spec/controllers/spree/admin/promotions_controller_spec.rb +0 -122
  143. data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -35
  144. data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +0 -137
  145. data/spec/controllers/spree/admin/resource_controller_spec.rb +0 -201
  146. data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +0 -291
  147. data/spec/controllers/spree/admin/return_items_controller_spec.rb +0 -29
  148. data/spec/controllers/spree/admin/root_controller_spec.rb +0 -43
  149. data/spec/controllers/spree/admin/search_controller_spec.rb +0 -106
  150. data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +0 -16
  151. data/spec/controllers/spree/admin/stock_items_controller_spec.rb +0 -52
  152. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +0 -44
  153. data/spec/controllers/spree/admin/store_credits_controller_spec.rb +0 -311
  154. data/spec/controllers/spree/admin/users_controller_spec.rb +0 -287
  155. data/spec/controllers/spree/admin/variants_controller_spec.rb +0 -71
  156. data/spec/features/admin/configuration/payment_methods_spec.rb +0 -176
  157. data/spec/features/admin/configuration/shipping_methods_spec.rb +0 -126
  158. data/spec/features/admin/configuration/stock_locations_spec.rb +0 -54
  159. data/spec/features/admin/configuration/store_spec.rb +0 -62
  160. data/spec/features/admin/configuration/tax_categories_spec.rb +0 -58
  161. data/spec/features/admin/configuration/tax_rates_spec.rb +0 -31
  162. data/spec/features/admin/configuration/taxonomies_spec.rb +0 -61
  163. data/spec/features/admin/configuration/zones_spec.rb +0 -41
  164. data/spec/features/admin/homepage_spec.rb +0 -86
  165. data/spec/features/admin/javascript_format_money_spec.rb +0 -22
  166. data/spec/features/admin/locale_spec.rb +0 -34
  167. data/spec/features/admin/orders/adjustments_promotions_spec.rb +0 -55
  168. data/spec/features/admin/orders/adjustments_spec.rb +0 -130
  169. data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +0 -45
  170. data/spec/features/admin/orders/cancelling_inventory_spec.rb +0 -50
  171. data/spec/features/admin/orders/customer_details_spec.rb +0 -203
  172. data/spec/features/admin/orders/customer_returns_spec.rb +0 -41
  173. data/spec/features/admin/orders/line_items_spec.rb +0 -52
  174. data/spec/features/admin/orders/listing_spec.rb +0 -186
  175. data/spec/features/admin/orders/log_entries_spec.rb +0 -56
  176. data/spec/features/admin/orders/new_order_spec.rb +0 -379
  177. data/spec/features/admin/orders/new_refund_spec.rb +0 -35
  178. data/spec/features/admin/orders/order_details_spec.rb +0 -591
  179. data/spec/features/admin/orders/payments_spec.rb +0 -330
  180. data/spec/features/admin/orders/return_authorizations_spec.rb +0 -56
  181. data/spec/features/admin/orders/return_payment_state_spec.rb +0 -65
  182. data/spec/features/admin/orders/risk_analysis_spec.rb +0 -49
  183. data/spec/features/admin/orders/shipments_spec.rb +0 -145
  184. data/spec/features/admin/payments/store_credits_spec.rb +0 -23
  185. data/spec/features/admin/products/edit/images_spec.rb +0 -76
  186. data/spec/features/admin/products/edit/products_spec.rb +0 -92
  187. data/spec/features/admin/products/edit/taxons_spec.rb +0 -57
  188. data/spec/features/admin/products/edit/variants_spec.rb +0 -63
  189. data/spec/features/admin/products/option_types_spec.rb +0 -116
  190. data/spec/features/admin/products/pricing_spec.rb +0 -127
  191. data/spec/features/admin/products/products_spec.rb +0 -348
  192. data/spec/features/admin/products/properties_spec.rb +0 -141
  193. data/spec/features/admin/products/stock_management_spec.rb +0 -101
  194. data/spec/features/admin/products/variant_spec.rb +0 -89
  195. data/spec/features/admin/promotion_adjustments_spec.rb +0 -286
  196. data/spec/features/admin/promotions/option_value_rule_spec.rb +0 -90
  197. data/spec/features/admin/promotions/product_rule_spec.rb +0 -35
  198. data/spec/features/admin/promotions/promotion_categories_spec.rb +0 -83
  199. data/spec/features/admin/promotions/promotion_code_batches_spec.rb +0 -37
  200. data/spec/features/admin/promotions/promotion_code_spec.rb +0 -31
  201. data/spec/features/admin/promotions/promotion_spec.rb +0 -52
  202. data/spec/features/admin/promotions/tiered_calculator_spec.rb +0 -76
  203. data/spec/features/admin/promotions/user_rule_spec.rb +0 -42
  204. data/spec/features/admin/reimbursements_spec.rb +0 -18
  205. data/spec/features/admin/store_credits_spec.rb +0 -132
  206. data/spec/features/admin/stores_spec.rb +0 -37
  207. data/spec/features/admin/style_guide_spec.rb +0 -14
  208. data/spec/features/admin/taxons_spec.rb +0 -90
  209. data/spec/features/admin/users_spec.rb +0 -412
  210. data/spec/fixtures/files/ror_ringer.jpeg +0 -0
  211. data/spec/helpers/admin/base_helper_spec.rb +0 -49
  212. data/spec/helpers/admin/navigation_helper_spec.rb +0 -139
  213. data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -29
  214. data/spec/helpers/admin/store_credit_events_helper_spec.rb +0 -97
  215. data/spec/helpers/promotion_rules_helper_spec.rb +0 -14
  216. data/spec/javascripts/fixtures/_boot.html.erb +0 -8
  217. data/spec/javascripts/fixtures/number_with_currency/with_currency_select.html.erb +0 -3
  218. data/spec/javascripts/fixtures/number_with_currency/without_select.html.erb +0 -3
  219. data/spec/javascripts/format_money_spec.js +0 -48
  220. data/spec/javascripts/spec_helper.js +0 -13
  221. data/spec/javascripts/support/show_errors.js +0 -8
  222. data/spec/javascripts/support/with_translations.js +0 -11
  223. data/spec/javascripts/translation_spec.js +0 -58
  224. data/spec/javascripts/views/number_with_currency_spec.js +0 -72
  225. data/spec/lib/spree/backend_configuration/menu_item_spec.rb +0 -17
  226. data/spec/lib/spree/backend_configuration_spec.rb +0 -22
  227. data/spec/spec_helper.rb +0 -123
  228. data/spec/support/appear_before_matcher.rb +0 -10
  229. data/spec/support/feature/base_feature_helper.rb +0 -17
  230. data/spec/support/feature/order_feature_helper.rb +0 -27
  231. data/spec/teaspoon_env.rb +0 -51
  232. data/spec/test_views/spree/admin/widgets/edit.html.erb +0 -1
  233. data/spec/test_views/spree/admin/widgets/new.html.erb +0 -1
  234. data/spec/views/spree/admin/shared/navigation_footer_spec.rb +0 -67
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'Order Risk Analysis', type: :feature do
6
- stub_authorization!
7
-
8
- let!(:order) do
9
- create(:completed_order_with_pending_payment)
10
- end
11
-
12
- def visit_order
13
- visit spree.admin_path
14
- click_link 'Orders'
15
- within_row(1) do
16
- click_link order.number
17
- end
18
- end
19
-
20
- context "the order is considered risky" do
21
- before do
22
- allow_any_instance_of(Spree::Admin::BaseController).to receive_messages try_spree_current_user: create(:user)
23
-
24
- order.payments.first.update_column(:avs_response, 'N')
25
- visit_order
26
- end
27
-
28
- it "displays 'Risk Analysis' box" do
29
- expect(page).to have_content 'Risk Analysis'
30
- end
31
-
32
- it "can be approved" do
33
- click_button('Approve')
34
- expect(page).to have_content 'Approver'
35
- expect(page).to have_content 'Approved at'
36
- expect(page).to have_content 'Status: Complete'
37
- end
38
- end
39
-
40
- context "the order is not considered risky" do
41
- before do
42
- visit_order
43
- end
44
-
45
- it "does not display 'Risk Analysis' box" do
46
- expect(page).to_not have_content 'Risk Analysis'
47
- end
48
- end
49
- end
@@ -1,145 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe "Shipments", type: :feature do
6
- include OrderFeatureHelper
7
-
8
- stub_authorization!
9
-
10
- let!(:order) { create(:order_ready_to_ship, number: "R100", state: "complete", line_items_count: 5) }
11
-
12
- # Regression test for https://github.com/spree/spree/issues/4025
13
- context "a shipment without a shipping method" do
14
- before do
15
- order.shipments.each do |s|
16
- # Deleting the shipping rates causes there to be no shipping methods
17
- s.shipping_rates.delete_all
18
- end
19
- end
20
-
21
- it "can still be displayed" do
22
- visit spree.edit_admin_order_path(order)
23
- end
24
- end
25
-
26
- context "shipping an order", js: true do
27
- before(:each) do
28
- visit spree.admin_path
29
- click_link "Orders"
30
- within_row(1) do
31
- click_link "R100"
32
- end
33
- end
34
-
35
- def ship_shipment
36
- find(".ship-shipment-button").click
37
-
38
- expect(page).to have_content("Shipped package")
39
- expect(order.reload.shipment_state).to eq("shipped")
40
- end
41
-
42
- it "can ship a completed order" do
43
- expect {
44
- perform_enqueued_jobs {
45
- ship_shipment
46
- }
47
- }.to change{ ActionMailer::Base.deliveries.count }.by(1)
48
- end
49
-
50
- it "doesn't send a shipping confirmation email when ask to suppress the mailer" do
51
- uncheck 'Send Mailer'
52
-
53
- expect {
54
- perform_enqueued_jobs {
55
- ship_shipment
56
- }
57
- }.not_to change{ ActionMailer::Base.deliveries.count }
58
- end
59
- end
60
-
61
- context "destroying a shipment", js: true do
62
- before do
63
- visit spree.admin_path
64
- click_link "Orders"
65
- within_row(1) do
66
- click_link "R100"
67
- end
68
- end
69
-
70
- context "when the line item cannot be found" do
71
- it "shows the proper error message" do
72
- expect(page).to have_selector '.delete-item'
73
- order.shipments.first.line_items.each(&:destroy)
74
- accept_alert { first('.delete-item').click }
75
- expect(page).to have_content 'The resource you were looking for could not be found.'
76
- end
77
- end
78
-
79
- context "when the shipment has already been shipped" do
80
- it "shows the proper error message" do
81
- expect(page).to have_selector '.delete-item'
82
- order.shipments.first.ship!
83
- accept_alert { first('.delete-item').click }
84
- expect(page).to have_content 'Cannot remove items from a shipped shipment'
85
- end
86
- end
87
- end
88
-
89
- context "moving variants between shipments", js: true do
90
- let!(:order) { create(:completed_order_with_pending_payment, number: "R100", state: "complete", line_items_count: 5) }
91
- let!(:la) { create(:stock_location, name: "LA") }
92
- before(:each) do
93
- visit spree.admin_path
94
- click_link "Orders"
95
- within_row(1) do
96
- click_link "R100"
97
- end
98
- end
99
-
100
- it "can move a variant to a new and to an existing shipment" do
101
- expect(order.shipments.count).to eq(1)
102
- shipment1 = order.shipments[0]
103
-
104
- within('tr', text: order.line_items[0].sku) { click_icon 'arrows-h' }
105
- complete_split_to('LA')
106
-
107
- expect(page).to have_css("#shipment_#{shipment1.id} tr.stock-item", count: 4)
108
- shipment2 = (order.reload.shipments.to_a - [shipment1]).first
109
- expect(page).to have_css("#shipment_#{shipment2.id} tr.stock-item", count: 1)
110
- within "#shipment_#{shipment2.id}" do
111
- expect(page).to have_content("UPS Ground")
112
- end
113
-
114
- within('tr', text: order.line_items[1].sku) { click_icon 'arrows-h' }
115
- complete_split_to("LA(#{shipment2.number})")
116
- expect(page).to have_css("#shipment_#{shipment2.id} tr.stock-item", count: 2)
117
- expect(page).to have_css("#shipment_#{shipment1.id} tr.stock-item", count: 3)
118
-
119
- within "#shipment_#{shipment2.id}" do
120
- expect(page).to have_content("UPS Ground")
121
- end
122
- end
123
-
124
- context "with a ready-to-ship order" do
125
- let(:variant) { create(:variant) }
126
- let!(:order) do
127
- create(
128
- :order_ready_to_ship,
129
- number: "R100",
130
- line_items_attributes: [{ variant: variant, quantity: 5 }]
131
- )
132
- end
133
-
134
- it "can transfer all items to a new location" do
135
- expect(order.shipments.count).to eq(1)
136
-
137
- within('tr', text: order.line_items[0].sku) { click_icon 'arrows-h' }
138
- complete_split_to('LA', quantity: 5)
139
-
140
- expect(page).to_not have_content("package from 'NY Warehouse'")
141
- expect(page).to have_content("package from 'LA'")
142
- end
143
- end
144
- end
145
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe 'Store credits', type: :feature do
6
- stub_authorization!
7
-
8
- let(:order) { FactoryBot.create(:completed_order_with_totals) }
9
- let(:payment) do
10
- FactoryBot.create(
11
- :store_credit_payment,
12
- order: order,
13
- amount: 20
14
- )
15
- end
16
-
17
- it "viewing a store credit payment" do
18
- visit spree.admin_order_payment_path(order, payment)
19
-
20
- expect(page).to have_content "Store Credit"
21
- expect(page).to have_content "Amount: $20.00"
22
- end
23
- end
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe "Product Images", type: :feature do
6
- stub_authorization!
7
-
8
- let(:file_path) { file_fixture("ror_ringer.jpeg") }
9
- let(:product) { create(:product) }
10
-
11
- before do
12
- # Ensure attachment style keys are symbolized before running all tests
13
- # Otherwise this would result in this error:
14
- # undefined method `processors' for \"48x48>\
15
- Spree::Image.attachment_definitions[:attachment][:styles].symbolize_keys!
16
- end
17
-
18
- context "uploading, editing, and deleting an image", js: true do
19
- it "should allow an admin to upload and edit an image for a product" do
20
- Spree::Image.attachment_definitions[:attachment].delete :storage
21
-
22
- create(:product)
23
-
24
- visit spree.admin_path
25
- click_nav "Products"
26
- click_icon(:edit)
27
- click_link "Images"
28
- click_link "new_image_link"
29
- within_fieldset 'New Image' do
30
- attach_file('image_attachment', file_path)
31
- end
32
- click_button "Update"
33
- expect(page).to have_content("successfully created!")
34
-
35
- # Icons are hidden, so hover to have them pop-up
36
- find('tbody > tr').hover
37
- within_row(1) do
38
- within ".actions" do
39
- click_icon :edit
40
- end
41
- end
42
-
43
- fill_in "image_alt", with: "ruby on rails t-shirt"
44
- click_button "Update"
45
-
46
- expect(page).to have_content "successfully updated!"
47
- expect(page).to have_field "image[alt]", with: "ruby on rails t-shirt"
48
-
49
- find('tbody > tr').hover
50
- accept_alert do
51
- click_icon :trash
52
- end
53
- expect(page).not_to have_field "image[alt]", with: "ruby on rails t-shirt"
54
- end
55
- end
56
-
57
- it "should not see variant column when product has no variants" do
58
- product = create(:product)
59
- product.images.create!(attachment: File.open(file_path))
60
- visit spree.admin_product_images_path(product)
61
-
62
- expect(page).not_to have_content("No Images Found.")
63
- within("table.index") do
64
- # ensure no duplicate images are displayed
65
- expect(page).to have_css("tbody tr", count: 1)
66
-
67
- # ensure variant header is not displayed
68
- within("thead") do
69
- expect(page).not_to have_content("Variant")
70
- end
71
-
72
- # ensure correct cell count
73
- expect(page).to have_css("thead th", count: 4)
74
- end
75
- end
76
- end
@@ -1,92 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'Product Details', type: :feature do
6
- stub_authorization!
7
-
8
- context 'editing a product' do
9
- it 'should list the product details' do
10
- create(:product, name: 'Bún thịt nướng', sku: 'A100',
11
- description: 'lorem ipsum', available_on: '2013-08-14 01:02:03')
12
-
13
- visit spree.admin_path
14
- click_nav "Products"
15
- within_row(1) { click_icon :edit }
16
-
17
- click_link 'Product Details'
18
-
19
- expect(page).to have_content('ProductsBún thịt nướng')
20
- expect(page).to have_field('product_name', with: 'Bún thịt nướng')
21
- expect(page).to have_field('product_slug', with: 'bun-th-t-n-ng')
22
- expect(page).to have_field('product_description', with: 'lorem ipsum')
23
- expect(page).to have_field('product_price', with: '19.99')
24
- expect(page).to have_field('product_cost_price', with: '17.00')
25
- expect(page).to have_field('product_available_on', with: "2013/08/14")
26
- expect(page).to have_field('product_sku', with: 'A100')
27
- end
28
-
29
- it "should handle slug changes" do
30
- create(:product, name: 'Bún thịt nướng', sku: 'A100',
31
- description: 'lorem ipsum', available_on: '2011-01-01 01:01:01')
32
-
33
- visit spree.admin_path
34
- click_nav "Products"
35
- within('table.index tbody tr:nth-child(1)') do
36
- click_icon(:edit)
37
- end
38
-
39
- fill_in "product_slug", with: 'random-slug-value'
40
- click_button "Update"
41
- expect(page).to have_content("successfully updated!")
42
-
43
- fill_in "product_slug", with: ''
44
- click_button "Update"
45
- within('#product_slug_field') { expect(page).to have_content("can't be blank") }
46
-
47
- fill_in "product_slug", with: 'x'
48
- click_button "Update"
49
- expect(page).to have_content("successfully updated!")
50
- end
51
- end
52
-
53
- context "when default price is deleted" do
54
- it "does not show the master price", js: true do
55
- product = create(:product, name: 'Bún thịt nướng', sku: 'A100',
56
- description: 'lorem ipsum', available_on: '2013-08-14 01:02:03')
57
-
58
- visit spree.admin_path
59
- click_nav "Products"
60
- within_row(1) { click_icon :edit }
61
-
62
- click_link 'Prices'
63
-
64
- within "#spree_price_#{product.master.default_price.id}" do
65
- accept_alert do
66
- click_icon :trash
67
- end
68
- end
69
- expect(page).to have_content("Price has been successfully removed")
70
-
71
- click_link 'Product Details'
72
-
73
- expect(page).not_to have_field('product_price')
74
- expect(page).to have_content('This Product has no price in the default currency (USD).')
75
- end
76
- end
77
-
78
- # Regression test for https://github.com/spree/spree/issues/3385
79
- context "deleting a product", js: true do
80
- it "is still able to find the master variant" do
81
- create(:product)
82
-
83
- visit spree.admin_products_path
84
- within_row(1) do
85
- accept_alert do
86
- click_icon :trash
87
- end
88
- end
89
- expect(page).to have_content('Product has been deleted')
90
- end
91
- end
92
- end
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe "Product Display Order", type: :feature do
6
- stub_authorization!
7
-
8
- context "managing display order", js: true do
9
- def assert_selected_taxons(taxons)
10
- # Regression test for https://github.com/spree/spree/issues/2139
11
- taxons.each do |taxon|
12
- expect(page).to have_css(".select2-search-choice", text: taxon.name)
13
- end
14
-
15
- expected_value = taxons.map(&:id).join(",")
16
- expect(page).to have_xpath("//*[@id = 'product_taxon_ids' and @value = '#{expected_value}']", visible: :all)
17
- end
18
-
19
- let(:product) { create(:product) }
20
-
21
- it "should allow an admin to manage display order (taxons)" do
22
- taxon_1 = create(:taxon)
23
- taxon_2 = create(:taxon, name: 'Clothing')
24
- product.taxons << taxon_1
25
-
26
- visit spree.edit_admin_product_path(product)
27
-
28
- assert_selected_taxons([taxon_1])
29
- select2_search "Clothing", from: "Taxon"
30
- assert_selected_taxons([taxon_1, taxon_2])
31
-
32
- # Without this line we have a flaky spec probably due to select2 not
33
- # closing its fixed overlay correctly. Clicking anywhere in the page
34
- # before submit apparently solves the issue.
35
- find('.edit_product', visible: true, obscured: false).click
36
-
37
- click_button "Update"
38
-
39
- within('.flash') do
40
- expect(page).to have_content(%(Product "#{product.name}" has been successfully updated!))
41
- end
42
- assert_selected_taxons([taxon_1, taxon_2])
43
- end
44
-
45
- context "with an XSS attempt", skip: true do
46
- let(:taxon_name) { %(<script>throw("XSS")</script>) }
47
- let!(:taxon) { create(:taxon, name: taxon_name) }
48
- it "displays the escaped HTML without executing it" do
49
- visit spree.edit_admin_product_path(product)
50
-
51
- select2_search "<script>", from: "Taxon"
52
-
53
- expect(page).to have_content(taxon_name)
54
- end
55
- end
56
- end
57
- end