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,291 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Spree::Admin::ReturnAuthorizationsController, type: :controller do
6
- stub_authorization!
7
-
8
- # Regression test for https://github.com/spree/spree/issues/1370 #3
9
- let!(:order) { create(:shipped_order, line_items_count: 3) }
10
- let!(:return_reason) { create(:return_reason) }
11
- let(:inventory_unit_1) { order.inventory_units.order('id asc')[0] }
12
- let(:inventory_unit_2) { order.inventory_units.order('id asc')[1] }
13
- let(:inventory_unit_3) { order.inventory_units.order('id asc')[2] }
14
-
15
- describe '#fire' do
16
- let(:return_authorization) { create(:return_authorization, order: order) }
17
-
18
- context 'with the event parameter set' do
19
- let(:params) do
20
- {
21
- id: return_authorization.to_param,
22
- order_id: return_authorization.order.to_param,
23
- e: event,
24
- }
25
- end
26
-
27
- context 'when event method exists on return authorization' do
28
- let(:event) { 'cancel' }
29
-
30
- it 'sends method with ! to return authorization and redirect back' do
31
- get :fire, params: params
32
-
33
- expect(response).to redirect_to(admin_order_return_authorizations_path(order))
34
- expect(flash[:success]).to eq 'Return merchandise authorization updated'
35
- end
36
- end
37
-
38
- context 'when event method does not exist on return authorization' do
39
- let(:event) { 'do_something_crazy' }
40
-
41
- it 'redirects back with an error message' do
42
- get :fire, params: params
43
-
44
- expect(response).to redirect_to(admin_order_return_authorizations_path(order))
45
- expect(flash[:error]).to eq 'Cannot perform this action on return merchandise authorization'
46
- end
47
- end
48
-
49
- context 'when event method exists but it is not a state machine event' do
50
- let(:event) { 'destroy' }
51
-
52
- it 'redirects back with an error message' do
53
- expect(return_authorization).not_to receive :destroy!
54
-
55
- get :fire, params: params
56
-
57
- expect(response).to redirect_to(admin_order_return_authorizations_path(order))
58
- expect(flash[:error]).to eq 'Cannot perform this action on return merchandise authorization'
59
- end
60
- end
61
- end
62
- end
63
-
64
- describe "#load_return_reasons" do
65
- let!(:inactive_rma_reason) { create(:return_reason, active: false) }
66
-
67
- context "a return item in the return authorization has an associated inactive reason" do
68
- let!(:other_inactive_rma_reason) { create(:return_reason, active: false) }
69
- let(:return_item) { create(:return_item, return_reason: inactive_rma_reason) }
70
- let(:return_authorization) { return_item.return_authorization }
71
-
72
- it "loads all the active rma reasons" do
73
- get :edit, params: { id: return_authorization.to_param, order_id: return_authorization.order.to_param }
74
- expect(assigns(:reasons)).to include(return_reason)
75
- expect(assigns(:reasons)).to include(inactive_rma_reason)
76
- expect(assigns(:reasons)).not_to include(other_inactive_rma_reason)
77
- end
78
- end
79
-
80
- context "return authorization has an associated active reason" do
81
- let(:return_authorization) { create(:return_authorization, reason: return_reason) }
82
-
83
- it "loads all the active rma reasons" do
84
- get :edit, params: { id: return_authorization.to_param, order_id: return_authorization.order.to_param }
85
- expect(assigns(:reasons)).to eq [return_reason]
86
- end
87
- end
88
-
89
- context "return authorization doesn't have an associated reason" do
90
- it "loads all the active rma reasons" do
91
- get :new, params: { order_id: order.to_param }
92
- expect(assigns(:reasons)).to eq [return_reason]
93
- end
94
- end
95
- end
96
-
97
- describe "#load_return_items" do
98
- shared_context 'without existing return items' do
99
- context 'without existing return items' do
100
- it 'has 3 new @form_return_items' do
101
- subject
102
- expect(assigns(:form_return_items).size).to eq 3
103
- expect(assigns(:form_return_items).select(&:new_record?).size).to eq 3
104
- end
105
- end
106
- end
107
-
108
- shared_context 'with existing return items' do
109
- context 'with existing return items' do
110
- let!(:return_item_1) { create(:return_item, inventory_unit: inventory_unit_1, return_authorization: return_authorization) }
111
-
112
- it 'has 1 existing return item and 2 new return items' do
113
- subject
114
- expect(assigns(:form_return_items).size).to eq 3
115
- expect(assigns(:form_return_items).select(&:persisted?)).to eq [return_item_1]
116
- expect(assigns(:form_return_items).select(&:new_record?).size).to eq 2
117
- end
118
- end
119
- end
120
-
121
- context '#new' do
122
- subject { get :new, params: { order_id: order.to_param } }
123
-
124
- include_context 'without existing return items'
125
- end
126
-
127
- context '#edit' do
128
- subject do
129
- get :edit, params: {
130
- id: return_authorization.to_param,
131
- order_id: order.to_param
132
- }
133
- end
134
-
135
- let(:return_authorization) { create(:return_authorization, order: order) }
136
-
137
- include_context 'without existing return items'
138
- include_context 'with existing return items'
139
- end
140
-
141
- context '#create failed' do
142
- subject do
143
- post :create, params: {
144
- return_authorization: { stock_location_id: nil }, # return authorization requires valid stock location, so this will fail
145
- order_id: order.to_param
146
- }
147
- end
148
-
149
- include_context 'without existing return items'
150
- end
151
-
152
- context '#update failed' do
153
- subject do
154
- put :update, params: {
155
- return_authorization: { stock_location_id: nil }, # return authorization requires valid stock location, so this will fail
156
- id: return_authorization.to_param,
157
- order_id: order.to_param
158
- }
159
- end
160
-
161
- let(:return_authorization) { create(:return_authorization, order: order) }
162
-
163
- include_context 'without existing return items'
164
- include_context 'with existing return items'
165
- end
166
- end
167
-
168
- describe "#load_reimbursement_types" do
169
- let(:order) { create(:order) }
170
- let!(:inactive_reimbursement_type) { create(:reimbursement_type, active: false) }
171
- let!(:first_active_reimbursement_type) { create(:reimbursement_type) }
172
- let!(:second_active_reimbursement_type) { create(:reimbursement_type) }
173
-
174
- before do
175
- get :new, params: { order_id: order.to_param }
176
- end
177
-
178
- it "loads all the active reimbursement types" do
179
- expect(assigns(:reimbursement_types)).to include(first_active_reimbursement_type)
180
- expect(assigns(:reimbursement_types)).to include(second_active_reimbursement_type)
181
- expect(assigns(:reimbursement_types)).not_to include(inactive_reimbursement_type)
182
- end
183
- end
184
-
185
- describe "#load_stock_locations" do
186
- let!(:active_stock_location) { create(:stock_location, active: true) }
187
- let!(:inactive_stock_location) { create(:stock_location, active: false) }
188
-
189
- before do
190
- get :new, params: { order_id: order.to_param }
191
- end
192
-
193
- it "loads all the active stock locations" do
194
- expect(assigns(:stock_locations)).to include(active_stock_location)
195
- expect(assigns(:stock_locations)).not_to include(inactive_stock_location)
196
- end
197
- end
198
-
199
- context '#create' do
200
- let(:stock_location) { create(:stock_location) }
201
-
202
- subject { post :create, params: params }
203
-
204
- let(:params) do
205
- {
206
- order_id: order.to_param,
207
- return_authorization: return_authorization_params
208
- }
209
- end
210
-
211
- let(:return_authorization_params) do
212
- {
213
- memo: "",
214
- stock_location_id: stock_location.id,
215
- return_reason_id: return_reason.id
216
- }
217
- end
218
-
219
- it "can create a return authorization" do
220
- subject
221
- expect(response).to redirect_to spree.admin_order_return_authorizations_path(order)
222
- end
223
- end
224
-
225
- context '#update' do
226
- let(:return_authorization) { create(:return_authorization, order: order) }
227
-
228
- let(:params) do
229
- {
230
- id: return_authorization.to_param,
231
- order_id: order.to_param,
232
- return_authorization: return_authorization_params
233
- }
234
- end
235
- let(:return_authorization_params) do
236
- {
237
- memo: "",
238
- return_items_attributes: return_items_params
239
- }
240
- end
241
-
242
- subject { put :update, params: params }
243
-
244
- context "adding an item" do
245
- let(:return_items_params) do
246
- {
247
- '0' => { inventory_unit_id: inventory_unit_1.to_param }
248
- }
249
- end
250
-
251
- context 'without existing items' do
252
- it 'creates a new item' do
253
- expect { subject }.to change { Spree::ReturnItem.count }.by(1)
254
- end
255
- end
256
-
257
- context 'with existing completed items' do
258
- let!(:completed_return_item) do
259
- create(:return_item, {
260
- return_authorization: return_authorization,
261
- inventory_unit: inventory_unit_1,
262
- reception_status: 'received'
263
- })
264
- end
265
-
266
- it 'does not create new items' do
267
- expect { subject }.to_not change { Spree::ReturnItem.count }
268
- expect(assigns[:return_authorization].errors['return_items.inventory_unit']).to eq ["#{inventory_unit_1.id} has already been taken by return item #{completed_return_item.id}"]
269
- end
270
- end
271
- end
272
-
273
- context "removing an item" do
274
- let!(:return_item) do
275
- create(:return_item, return_authorization: return_authorization, inventory_unit: inventory_unit_1)
276
- end
277
-
278
- let(:return_items_params) do
279
- {
280
- '0' => { id: return_item.to_param, _destroy: '1' }
281
- }
282
- end
283
-
284
- context 'with existing items' do
285
- it 'removes the item' do
286
- expect { subject }.to change { Spree::ReturnItem.count }.by(-1)
287
- end
288
- end
289
- end
290
- end
291
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Spree::Admin::ReturnItemsController, type: :controller do
6
- stub_authorization!
7
-
8
- describe '#update' do
9
- let(:customer_return) { create(:customer_return) }
10
- let(:return_item) { customer_return.return_items.first }
11
- let(:old_acceptance_status) { 'pending' }
12
- let(:new_acceptance_status) { 'rejected' }
13
-
14
- subject do
15
- put :update, params: { id: return_item.to_param, return_item: { acceptance_status: new_acceptance_status } }
16
- end
17
-
18
- it 'updates the return item' do
19
- expect {
20
- subject
21
- }.to change { return_item.reload.acceptance_status }.from(old_acceptance_status).to(new_acceptance_status)
22
- end
23
-
24
- it 'redirects to the customer return' do
25
- subject
26
- expect(response).to redirect_to spree.edit_admin_order_customer_return_path(customer_return.order, customer_return)
27
- end
28
- end
29
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Spree::Admin::RootController do
6
- describe "GET index" do
7
- subject { get :index }
8
-
9
- let(:user) { build(:user) }
10
- let(:ability) { Spree::Ability.new(user) }
11
-
12
- before do
13
- allow_any_instance_of(Spree::Admin::RootController).to receive(:try_spree_current_user).and_return(user)
14
- allow_any_instance_of(Spree::Admin::RootController).to receive(:current_ability).and_return(ability)
15
- end
16
-
17
- context "when a user can admin and display spree orders" do
18
- before do
19
- ability.can :admin, Spree::Order
20
- ability.can :display, Spree::Order
21
- end
22
-
23
- it { is_expected.to redirect_to(spree.admin_orders_path) }
24
- end
25
-
26
- context "when a user cannot admin and display spree orders" do
27
- context "when a user can admin and home dashboards" do
28
- before do
29
- ability.can :admin, :dashboards
30
- ability.can :home, :dashboards
31
- end
32
-
33
- it { is_expected.to redirect_to(spree.home_admin_dashboards_path) }
34
- end
35
-
36
- context "when a user cannot admin and home dashboards" do
37
- # The default exception handler redirects to /unauthorized.
38
- # Extensions may change this.
39
- it { is_expected.to redirect_to('/unauthorized') }
40
- end
41
- end
42
- end
43
- end
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Spree::Admin::SearchController, type: :controller do
6
- stub_authorization!
7
-
8
- # Regression test for ernie/ransack#176
9
- let(:user) { create(:user, email: "spree_commerce@example.com") }
10
-
11
- before do
12
- user.ship_address = create(:address)
13
- user.bill_address = create(:address)
14
- user.save
15
- end
16
-
17
- describe 'GET #users' do
18
- subject { get :users, params: params, as: :json }
19
-
20
- shared_examples_for 'user found by search' do
21
- it "should include users matching query" do
22
- subject
23
- expect(assigns[:users]).to include(user)
24
- end
25
- end
26
-
27
- context 'when searching by user attributes' do
28
- let(:params) { { q: user_attribute } }
29
-
30
- context 'when searching by email' do
31
- it_should_behave_like 'user found by search' do
32
- let(:user_attribute) { user.email }
33
- end
34
- end
35
-
36
- context 'when searching by ship addresss first name' do
37
- it_should_behave_like 'user found by search' do
38
- let(:user_attribute) { user.ship_address.firstname }
39
- end
40
- end
41
-
42
- context 'when searching by ship address last name' do
43
- it_should_behave_like 'user found by search' do
44
- let(:user_attribute) { user.ship_address.lastname }
45
- end
46
- end
47
-
48
- context 'when searching by bill address first name' do
49
- it_should_behave_like 'user found by search' do
50
- let(:user_attribute) { user.bill_address.firstname }
51
- end
52
- end
53
-
54
- context 'when searching by bill address last name' do
55
- it_should_behave_like 'user found by search' do
56
- let(:user_attribute) { user.bill_address.lastname }
57
- end
58
- end
59
- end
60
-
61
- context 'when searching by user ids' do
62
- let(:params) { { ids: user.id.to_s } }
63
- it_should_behave_like 'user found by search'
64
- end
65
- end
66
-
67
- describe 'get #products' do
68
- let!(:product_one) { create(:product, name: 'jersey') }
69
- let!(:product_two) { create(:product, name: 'better jersey') }
70
-
71
- subject { get :products, params: params, as: :json }
72
-
73
- shared_examples_for 'product search' do
74
- it 'should respond with http success' do
75
- subject
76
- expect(response).to be_successful
77
- end
78
-
79
- it 'should set the Surrogate-Control header' do
80
- subject
81
- expect(response.headers['Surrogate-Control']).to eq 'max-age=900'
82
- end
83
-
84
- it 'should find the correct products' do
85
- subject
86
- expect(assigns(:products)).to match_array expected_products
87
- end
88
- end
89
-
90
- context 'when ids param is present' do
91
- let(:params) { { ids: product_one.id } }
92
-
93
- it_should_behave_like 'product search' do
94
- let(:expected_products) { [product_one] }
95
- end
96
- end
97
-
98
- context 'when idds param is not present' do
99
- let(:params) { { q: { name_cont: 'jersey' } } }
100
-
101
- it_should_behave_like 'product search' do
102
- let(:expected_products) { [product_one, product_two] }
103
- end
104
- end
105
- end
106
- end