solidus_backend 2.4.2 → 2.5.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_backend might be problematic. Click here for more details.

Files changed (505) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +7 -7
  3. data/Rakefile +19 -13
  4. data/app/assets/javascripts/spree/backend.js +5 -17
  5. data/app/assets/javascripts/spree/backend/adjustments.js +26 -0
  6. data/app/assets/javascripts/spree/backend/admin.js +14 -78
  7. data/app/assets/javascripts/spree/backend/backbone-overrides.js +25 -0
  8. data/app/assets/javascripts/spree/backend/calculator.js +1 -1
  9. data/app/assets/javascripts/spree/backend/checkouts/edit.js +1 -1
  10. data/app/assets/javascripts/spree/backend/collections/index.js +1 -0
  11. data/app/assets/javascripts/spree/backend/collections/shipments.js +6 -0
  12. data/app/assets/javascripts/spree/backend/components/editable_table.js +5 -0
  13. data/app/assets/javascripts/spree/backend/components/number_with_currency.js +1 -1
  14. data/app/assets/javascripts/spree/backend/components/sortable_table.js +29 -0
  15. data/app/assets/javascripts/spree/backend/components/tabs.js +67 -0
  16. data/app/assets/javascripts/spree/backend/components/tooltips.js +19 -24
  17. data/app/assets/javascripts/spree/backend/datepicker.js +55 -0
  18. data/app/assets/javascripts/spree/backend/flash.js +20 -0
  19. data/app/assets/javascripts/spree/backend/gateway.js +22 -0
  20. data/app/assets/javascripts/spree/backend/handlebars_extensions.js +8 -0
  21. data/app/assets/javascripts/spree/backend/images/index.js +8 -0
  22. data/app/assets/javascripts/spree/backend/models/index.js +3 -0
  23. data/app/assets/javascripts/spree/backend/models/line_item.js +4 -0
  24. data/app/assets/javascripts/spree/backend/models/order.js +2 -1
  25. data/app/assets/javascripts/spree/backend/models/payment.js +5 -0
  26. data/app/assets/javascripts/spree/backend/models/shipment.js +27 -0
  27. data/app/assets/javascripts/spree/backend/models/stock_item.js +6 -0
  28. data/app/assets/javascripts/spree/backend/namespaces.js +5 -1
  29. data/app/assets/javascripts/spree/backend/navigation.js +14 -0
  30. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +1 -1
  31. data/app/assets/javascripts/spree/backend/option_value_picker.js +1 -0
  32. data/app/assets/javascripts/spree/backend/orders/cart.js +1 -1
  33. data/app/assets/javascripts/spree/backend/orders/edit.js +2 -2
  34. data/app/assets/javascripts/spree/backend/payments/edit.js +16 -0
  35. data/app/assets/javascripts/spree/backend/payments/new.js +1 -1
  36. data/app/assets/javascripts/spree/backend/product_picker.js +1 -1
  37. data/app/assets/javascripts/spree/backend/progress.js +9 -0
  38. data/app/assets/javascripts/spree/backend/promotions.js +35 -0
  39. data/app/assets/javascripts/spree/backend/promotions/activation.js +1 -1
  40. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +1 -1
  41. data/app/assets/javascripts/spree/backend/routes.js +0 -12
  42. data/app/assets/javascripts/spree/backend/shipments.js +35 -68
  43. data/app/assets/javascripts/spree/backend/stock_location.js +23 -0
  44. data/app/assets/javascripts/spree/backend/stock_management.js +22 -0
  45. data/app/assets/javascripts/spree/backend/store_credits.js +25 -0
  46. data/app/assets/javascripts/spree/backend/style_guide.js +3 -0
  47. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +1 -1
  48. data/app/assets/javascripts/spree/backend/taxonomy.js +121 -0
  49. data/app/assets/javascripts/spree/backend/taxons.js +75 -0
  50. data/app/assets/javascripts/spree/backend/templates/index.js +2 -2
  51. data/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs +7 -5
  52. data/app/assets/javascripts/spree/backend/templates/orders/shipment_tracking.hbs +24 -0
  53. data/app/assets/javascripts/spree/backend/templates/orders/shipping_method.hbs +34 -0
  54. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_flat_rate.hbs +7 -3
  55. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_percent.hbs +6 -2
  56. data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +3 -1
  57. data/app/assets/javascripts/spree/backend/templates/variants/autocomplete_stock.hbs +10 -5
  58. data/app/assets/javascripts/spree/backend/templates/variants/split.hbs +5 -3
  59. data/app/assets/javascripts/spree/backend/translation.js +11 -0
  60. data/app/assets/javascripts/spree/backend/turbolinks-integration.js +21 -0
  61. data/app/assets/javascripts/spree/backend/user_picker.js +1 -1
  62. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +60 -0
  63. data/app/assets/javascripts/spree/backend/views/calculators/tiered.js +54 -0
  64. data/app/assets/javascripts/spree/backend/views/cart/line_item_row.js +2 -1
  65. data/app/assets/javascripts/spree/backend/views/index.js +7 -0
  66. data/app/assets/javascripts/spree/backend/views/order/shipment_tracking.js +46 -0
  67. data/app/assets/javascripts/spree/backend/views/order/shipping_method.js +57 -0
  68. data/app/assets/javascripts/spree/backend/views/payment/payment_row.js +36 -0
  69. data/app/assets/javascripts/spree/backend/views/promotions/option_values_rule.js +79 -0
  70. data/app/assets/javascripts/spree/backend/views/state_select.js +6 -6
  71. data/app/assets/javascripts/spree/backend/views/stock/add_stock_item.js +63 -0
  72. data/app/assets/javascripts/spree/backend/views/stock/edit_stock_item_row.js +68 -0
  73. data/app/assets/javascripts/spree/backend/views/tables/editable_table.js +15 -0
  74. data/app/assets/javascripts/spree/backend/views/tables/editable_table_row.js +61 -0
  75. data/app/assets/javascripts/spree/backend/zone.js +1 -1
  76. data/app/assets/stylesheets/spree/backend.css +1 -2
  77. data/app/assets/stylesheets/spree/backend/components/_messages.scss +4 -1
  78. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +4 -2
  79. data/app/assets/stylesheets/spree/backend/components/_number_with_currency.scss +8 -2
  80. data/app/assets/stylesheets/spree/backend/components/_progress.scss +4 -0
  81. data/app/assets/stylesheets/spree/backend/components/_tabs.scss +4 -2
  82. data/app/assets/stylesheets/spree/backend/globals/mixins/_line_through.scss +2 -1
  83. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +32 -7
  84. data/app/assets/stylesheets/spree/backend/plugins/_sortable.scss +3 -0
  85. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +4 -20
  86. data/app/assets/stylesheets/spree/backend/sections/_products.scss +0 -1
  87. data/app/assets/stylesheets/spree/backend/sections/_promotions.scss +15 -7
  88. data/app/assets/stylesheets/spree/backend/sections/_store_credits.scss +17 -6
  89. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +8 -4
  90. data/app/assets/stylesheets/spree/backend/sections/_taxonomies.scss +5 -19
  91. data/app/assets/stylesheets/spree/backend/sections/_variants.scss +5 -0
  92. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +13 -17
  93. data/app/assets/stylesheets/spree/backend/shared/_layout.scss +9 -3
  94. data/app/assets/stylesheets/spree/backend/shared/_tables.scss +3 -27
  95. data/app/assets/stylesheets/spree/backend/spree_admin.scss +2 -6
  96. data/app/controllers/spree/admin/base_controller.rb +2 -3
  97. data/app/controllers/spree/admin/cancellations_controller.rb +3 -3
  98. data/app/controllers/spree/admin/images_controller.rb +1 -1
  99. data/app/controllers/spree/admin/option_types_controller.rb +1 -2
  100. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -2
  101. data/app/controllers/spree/admin/orders_controller.rb +11 -11
  102. data/app/controllers/spree/admin/payment_methods_controller.rb +5 -6
  103. data/app/controllers/spree/admin/payments_controller.rb +5 -5
  104. data/app/controllers/spree/admin/products_controller.rb +4 -6
  105. data/app/controllers/spree/admin/promotion_actions_controller.rb +4 -4
  106. data/app/controllers/spree/admin/promotion_rules_controller.rb +3 -3
  107. data/app/controllers/spree/admin/promotions_controller.rb +5 -1
  108. data/app/controllers/spree/admin/reports_controller.rb +2 -2
  109. data/app/controllers/spree/admin/resource_controller.rb +17 -5
  110. data/app/controllers/spree/admin/return_authorizations_controller.rb +2 -2
  111. data/app/controllers/spree/admin/shipping_methods_controller.rb +1 -1
  112. data/app/controllers/spree/admin/stock_locations_controller.rb +1 -1
  113. data/app/controllers/spree/admin/store_credits_controller.rb +4 -4
  114. data/app/controllers/spree/admin/taxons_controller.rb +1 -1
  115. data/app/controllers/spree/admin/users_controller.rb +6 -6
  116. data/app/controllers/spree/admin/variants_controller.rb +0 -16
  117. data/app/helpers/spree/admin/adjustments_helper.rb +2 -2
  118. data/app/helpers/spree/admin/base_helper.rb +5 -11
  119. data/app/helpers/spree/admin/navigation_helper.rb +8 -8
  120. data/app/helpers/spree/admin/orders_helper.rb +2 -2
  121. data/app/helpers/spree/admin/products_helper.rb +0 -24
  122. data/app/helpers/spree/admin/store_credit_events_helper.rb +5 -5
  123. data/app/models/spree/backend_configuration.rb +1 -2
  124. data/app/views/spree/admin/adjustment_reasons/edit.html.erb +2 -2
  125. data/app/views/spree/admin/adjustment_reasons/index.html.erb +5 -5
  126. data/app/views/spree/admin/adjustment_reasons/new.html.erb +3 -3
  127. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +2 -2
  128. data/app/views/spree/admin/adjustments/_form.html.erb +1 -1
  129. data/app/views/spree/admin/adjustments/edit.html.erb +3 -3
  130. data/app/views/spree/admin/adjustments/index.html.erb +3 -3
  131. data/app/views/spree/admin/adjustments/new.html.erb +3 -3
  132. data/app/views/spree/admin/cancellations/index.html.erb +3 -3
  133. data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +2 -2
  134. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +7 -7
  135. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +2 -2
  136. data/app/views/spree/admin/customer_returns/edit.html.erb +7 -7
  137. data/app/views/spree/admin/customer_returns/index.html.erb +4 -4
  138. data/app/views/spree/admin/customer_returns/new.html.erb +11 -11
  139. data/app/views/spree/admin/images/_image_row.html.erb +3 -3
  140. data/app/views/spree/admin/images/_new.html.erb +12 -0
  141. data/app/views/spree/admin/images/edit.html.erb +4 -4
  142. data/app/views/spree/admin/images/index.html.erb +7 -5
  143. data/app/views/spree/admin/images/new.html.erb +1 -12
  144. data/app/views/spree/admin/log_entries/index.html.erb +2 -2
  145. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +1 -1
  146. data/app/views/spree/admin/option_types/edit.html.erb +1 -1
  147. data/app/views/spree/admin/option_types/index.html.erb +2 -2
  148. data/app/views/spree/admin/option_types/new.html.erb +1 -1
  149. data/app/views/spree/admin/orders/_add_product.html.erb +2 -2
  150. data/app/views/spree/admin/orders/_carton.html.erb +8 -8
  151. data/app/views/spree/admin/orders/_carton_manifest.html.erb +1 -1
  152. data/app/views/spree/admin/orders/_order_details.html.erb +4 -4
  153. data/app/views/spree/admin/orders/_risk_analysis.html.erb +10 -10
  154. data/app/views/spree/admin/orders/_shipment.html.erb +11 -69
  155. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +3 -3
  156. data/app/views/spree/admin/orders/cart.html.erb +2 -2
  157. data/app/views/spree/admin/orders/confirm.html.erb +6 -6
  158. data/app/views/spree/admin/orders/confirm/_customer_details.html.erb +3 -3
  159. data/app/views/spree/admin/orders/confirm/_payments.html.erb +1 -1
  160. data/app/views/spree/admin/orders/confirm/_shipment.html.erb +2 -2
  161. data/app/views/spree/admin/orders/confirm/_shipment_manifest.html.erb +1 -1
  162. data/app/views/spree/admin/orders/confirm_advance.html.erb +3 -3
  163. data/app/views/spree/admin/orders/customer_details/_form.html.erb +19 -13
  164. data/app/views/spree/admin/orders/customer_details/edit.html.erb +2 -2
  165. data/app/views/spree/admin/orders/customer_details/show.html.erb +7 -7
  166. data/app/views/spree/admin/orders/edit.html.erb +2 -2
  167. data/app/views/spree/admin/orders/index.html.erb +30 -28
  168. data/app/views/spree/admin/payment_methods/_form.html.erb +24 -13
  169. data/app/views/spree/admin/payment_methods/edit.html.erb +2 -2
  170. data/app/views/spree/admin/payment_methods/index.html.erb +6 -6
  171. data/app/views/spree/admin/payment_methods/new.html.erb +3 -3
  172. data/app/views/spree/admin/payments/_capture_events.html.erb +2 -2
  173. data/app/views/spree/admin/payments/_list.html.erb +33 -13
  174. data/app/views/spree/admin/payments/credit.html.erb +1 -1
  175. data/app/views/spree/admin/payments/index.html.erb +3 -3
  176. data/app/views/spree/admin/payments/new.html.erb +4 -4
  177. data/app/views/spree/admin/payments/show.html.erb +2 -2
  178. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +22 -23
  179. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  180. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +1 -1
  181. data/app/views/spree/admin/prices/_form.html.erb +1 -2
  182. data/app/views/spree/admin/prices/edit.html.erb +1 -1
  183. data/app/views/spree/admin/prices/index.html.erb +2 -2
  184. data/app/views/spree/admin/prices/new.html.erb +1 -1
  185. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +1 -1
  186. data/app/views/spree/admin/product_properties/index.html.erb +7 -14
  187. data/app/views/spree/admin/products/_form.html.erb +17 -14
  188. data/app/views/spree/admin/products/edit.html.erb +2 -2
  189. data/app/views/spree/admin/products/index.html.erb +6 -6
  190. data/app/views/spree/admin/products/new.html.erb +5 -59
  191. data/app/views/spree/admin/promotion_categories/index.html.erb +1 -1
  192. data/app/views/spree/admin/promotion_categories/new.html.erb +1 -1
  193. data/app/views/spree/admin/promotion_code_batches/index.html.erb +8 -8
  194. data/app/views/spree/admin/promotion_code_batches/new.html.erb +1 -1
  195. data/app/views/spree/admin/promotion_codes/index.html.erb +1 -1
  196. data/app/views/spree/admin/promotions/_actions.html.erb +6 -6
  197. data/app/views/spree/admin/promotions/_form.html.erb +13 -4
  198. data/app/views/spree/admin/promotions/_promotion_rule.html.erb +1 -1
  199. data/app/views/spree/admin/promotions/_rules.html.erb +8 -8
  200. data/app/views/spree/admin/promotions/actions/_create_quantity_adjustments.html.erb +4 -10
  201. data/app/views/spree/admin/promotions/actions/_promotion_calculators_with_custom_fields.html.erb +25 -29
  202. data/app/views/spree/admin/promotions/calculators/_default_fields.html.erb +5 -4
  203. data/app/views/spree/admin/promotions/calculators/distributed_amount/_fields.html.erb +6 -4
  204. data/app/views/spree/admin/promotions/calculators/flat_rate/_fields.html.erb +6 -4
  205. data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +5 -5
  206. data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +5 -5
  207. data/app/views/spree/admin/promotions/edit.html.erb +1 -1
  208. data/app/views/spree/admin/promotions/index.html.erb +7 -7
  209. data/app/views/spree/admin/promotions/new.html.erb +1 -1
  210. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +10 -12
  211. data/app/views/spree/admin/promotions/rules/_nth_order.html.erb +8 -10
  212. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +10 -14
  213. data/app/views/spree/admin/promotions/rules/_product.html.erb +12 -10
  214. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +9 -15
  215. data/app/views/spree/admin/promotions/rules/_user.html.erb +3 -5
  216. data/app/views/spree/admin/promotions/rules/_user_role.html.erb +3 -3
  217. data/app/views/spree/admin/properties/index.html.erb +5 -5
  218. data/app/views/spree/admin/properties/new.html.erb +1 -1
  219. data/app/views/spree/admin/refund_reasons/edit.html.erb +2 -2
  220. data/app/views/spree/admin/refund_reasons/index.html.erb +5 -5
  221. data/app/views/spree/admin/refund_reasons/new.html.erb +3 -3
  222. data/app/views/spree/admin/refund_reasons/shared/_form.html.erb +1 -1
  223. data/app/views/spree/admin/refunds/edit.html.erb +3 -3
  224. data/app/views/spree/admin/refunds/new.html.erb +4 -4
  225. data/app/views/spree/admin/reimbursement_types/index.html.erb +2 -2
  226. data/app/views/spree/admin/reimbursements/edit.html.erb +9 -9
  227. data/app/views/spree/admin/reimbursements/index.html.erb +4 -4
  228. data/app/views/spree/admin/reimbursements/show.html.erb +4 -4
  229. data/app/views/spree/admin/reports/index.html.erb +3 -3
  230. data/app/views/spree/admin/reports/sales_total.html.erb +7 -7
  231. data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -3
  232. data/app/views/spree/admin/return_authorizations/edit.html.erb +5 -5
  233. data/app/views/spree/admin/return_authorizations/index.html.erb +4 -4
  234. data/app/views/spree/admin/return_authorizations/new.html.erb +3 -3
  235. data/app/views/spree/admin/return_reasons/edit.html.erb +2 -2
  236. data/app/views/spree/admin/return_reasons/index.html.erb +3 -3
  237. data/app/views/spree/admin/return_reasons/new.html.erb +3 -3
  238. data/app/views/spree/admin/shared/_address_form.html.erb +2 -0
  239. data/app/views/spree/admin/shared/_calculator_fields.html.erb +4 -3
  240. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +2 -2
  241. data/app/views/spree/admin/shared/_head.html.erb +13 -5
  242. data/app/views/spree/admin/shared/_js_locale_data.html.erb +24 -32
  243. data/app/views/spree/admin/shared/_navigation_footer.html.erb +32 -2
  244. data/app/views/spree/admin/shared/_new_resource_links.html.erb +2 -2
  245. data/app/views/spree/admin/shared/_no_objects_found.html.erb +2 -2
  246. data/app/views/spree/admin/shared/_number_with_currency.html.erb +9 -5
  247. data/app/views/spree/admin/shared/_order_submenu.html.erb +6 -6
  248. data/app/views/spree/admin/shared/_order_summary.html.erb +5 -5
  249. data/app/views/spree/admin/shared/_order_tabs.html.erb +1 -1
  250. data/app/views/spree/admin/shared/_product_tabs.html.erb +3 -3
  251. data/app/views/spree/admin/shared/_rebuild_vat_prices_checkbox.html.erb +2 -2
  252. data/app/views/spree/admin/shared/_refunds.html.erb +2 -2
  253. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +8 -6
  254. data/app/views/spree/admin/shared/_spinner.html.erb +1 -1
  255. data/app/views/spree/admin/shared/_variant_search.html.erb +3 -3
  256. data/app/views/spree/admin/shared/named_types/_form.html.erb +4 -2
  257. data/app/views/spree/admin/shared/named_types/_index.html.erb +4 -4
  258. data/app/views/spree/admin/shared/preference_fields/_boolean.html.erb +9 -8
  259. data/app/views/spree/admin/shipping_categories/edit.html.erb +3 -3
  260. data/app/views/spree/admin/shipping_categories/index.html.erb +5 -5
  261. data/app/views/spree/admin/shipping_categories/new.html.erb +3 -3
  262. data/app/views/spree/admin/shipping_methods/_form.html.erb +10 -8
  263. data/app/views/spree/admin/shipping_methods/edit.html.erb +2 -2
  264. data/app/views/spree/admin/shipping_methods/index.html.erb +5 -5
  265. data/app/views/spree/admin/shipping_methods/new.html.erb +3 -3
  266. data/app/views/spree/admin/stock_items/_stock_management.html.erb +7 -7
  267. data/app/views/spree/admin/stock_items/index.html.erb +4 -4
  268. data/app/views/spree/admin/stock_locations/_form.html.erb +105 -103
  269. data/app/views/spree/admin/stock_locations/edit.html.erb +4 -6
  270. data/app/views/spree/admin/stock_locations/index.html.erb +5 -11
  271. data/app/views/spree/admin/stock_locations/new.html.erb +5 -7
  272. data/app/views/spree/admin/stock_movements/index.html.erb +3 -3
  273. data/app/views/spree/admin/store_credits/_form.html.erb +3 -3
  274. data/app/views/spree/admin/store_credits/_update_reason_field.html.erb +7 -8
  275. data/app/views/spree/admin/store_credits/edit_amount.html.erb +10 -6
  276. data/app/views/spree/admin/store_credits/edit_validity.html.erb +7 -5
  277. data/app/views/spree/admin/store_credits/index.html.erb +13 -13
  278. data/app/views/spree/admin/store_credits/new.html.erb +2 -2
  279. data/app/views/spree/admin/store_credits/show.html.erb +24 -32
  280. data/app/views/spree/admin/stores/_form.html.erb +1 -1
  281. data/app/views/spree/admin/stores/edit.html.erb +1 -1
  282. data/app/views/spree/admin/stores/index.html.erb +1 -1
  283. data/app/views/spree/admin/stores/new.html.erb +1 -1
  284. data/app/views/spree/admin/style_guide/topics/forms/_building_forms.html.erb +5 -3
  285. data/app/views/spree/admin/style_guide/topics/messaging/_loading.html.erb +1 -1
  286. data/app/views/spree/admin/tax_categories/_form.html.erb +4 -2
  287. data/app/views/spree/admin/tax_categories/edit.html.erb +2 -2
  288. data/app/views/spree/admin/tax_categories/index.html.erb +5 -5
  289. data/app/views/spree/admin/tax_categories/new.html.erb +3 -3
  290. data/app/views/spree/admin/tax_rates/_form.html.erb +17 -11
  291. data/app/views/spree/admin/tax_rates/edit.html.erb +2 -2
  292. data/app/views/spree/admin/tax_rates/index.html.erb +8 -8
  293. data/app/views/spree/admin/tax_rates/new.html.erb +3 -3
  294. data/app/views/spree/admin/taxonomies/edit.erb +3 -3
  295. data/app/views/spree/admin/taxonomies/index.html.erb +2 -2
  296. data/app/views/spree/admin/taxonomies/new.html.erb +2 -2
  297. data/app/views/spree/admin/taxons/_form.html.erb +5 -1
  298. data/app/views/spree/admin/taxons/edit.html.erb +4 -4
  299. data/app/views/spree/admin/taxons/index.html.erb +7 -7
  300. data/app/views/spree/admin/users/_addresses_form.html.erb +2 -2
  301. data/app/views/spree/admin/users/_form.html.erb +10 -5
  302. data/app/views/spree/admin/users/_sidebar.html.erb +6 -6
  303. data/app/views/spree/admin/users/_tabs.html.erb +5 -5
  304. data/app/views/spree/admin/users/edit.html.erb +14 -15
  305. data/app/views/spree/admin/users/index.html.erb +14 -12
  306. data/app/views/spree/admin/users/items.html.erb +7 -7
  307. data/app/views/spree/admin/users/new.html.erb +1 -1
  308. data/app/views/spree/admin/users/orders.html.erb +7 -7
  309. data/app/views/spree/admin/variants/_form.html.erb +2 -2
  310. data/app/views/spree/admin/variants/_table.html.erb +2 -2
  311. data/app/views/spree/admin/variants/_table_filter.html.erb +5 -5
  312. data/app/views/spree/admin/variants/index.html.erb +8 -8
  313. data/app/views/spree/admin/variants/new.html.erb +1 -1
  314. data/app/views/spree/admin/zones/_form.html.erb +10 -6
  315. data/app/views/spree/admin/zones/edit.html.erb +1 -1
  316. data/app/views/spree/admin/zones/index.html.erb +3 -3
  317. data/app/views/spree/admin/zones/new.html.erb +2 -2
  318. data/app/views/spree/layouts/admin.html.erb +1 -1
  319. data/app/views/spree/layouts/admin_style_guide.html.erb +2 -2
  320. data/config/routes.rb +1 -11
  321. data/lib/spree/backend.rb +1 -2
  322. data/solidus_backend.gemspec +1 -3
  323. data/spec/controllers/spree/admin/cancellations_controller_spec.rb +3 -3
  324. data/spec/controllers/spree/admin/orders_controller_spec.rb +9 -9
  325. data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +1 -1
  326. data/spec/controllers/spree/admin/prices_controller_spec.rb +2 -2
  327. data/spec/controllers/spree/admin/products_controller_spec.rb +2 -1
  328. data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +1 -1
  329. data/spec/controllers/spree/admin/promotions_controller_spec.rb +7 -0
  330. data/spec/controllers/spree/admin/reports_controller_spec.rb +1 -1
  331. data/spec/controllers/spree/admin/resource_controller_spec.rb +2 -2
  332. data/spec/controllers/spree/admin/search_controller_spec.rb +1 -1
  333. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +4 -4
  334. data/spec/controllers/spree/admin/users_controller_spec.rb +1 -1
  335. data/spec/controllers/spree/admin/variants_controller_spec.rb +13 -3
  336. data/spec/features/admin/configuration/payment_methods_spec.rb +55 -16
  337. data/spec/features/admin/configuration/shipping_methods_spec.rb +40 -0
  338. data/spec/features/admin/homepage_spec.rb +25 -8
  339. data/spec/features/admin/orders/adjustments_spec.rb +2 -2
  340. data/spec/features/admin/orders/customer_details_spec.rb +24 -9
  341. data/spec/features/admin/orders/listing_spec.rb +6 -9
  342. data/spec/features/admin/orders/log_entries_spec.rb +0 -1
  343. data/spec/features/admin/orders/new_order_spec.rb +8 -2
  344. data/spec/features/admin/orders/order_details_spec.rb +116 -74
  345. data/spec/features/admin/orders/payments_spec.rb +7 -10
  346. data/spec/features/admin/orders/shipments_spec.rb +9 -5
  347. data/spec/features/admin/payments/store_credits_spec.rb +2 -2
  348. data/spec/features/admin/products/edit/images_spec.rb +0 -79
  349. data/spec/features/admin/products/products_spec.rb +3 -6
  350. data/spec/features/admin/products/variant_spec.rb +17 -0
  351. data/spec/features/admin/promotion_adjustments_spec.rb +105 -52
  352. data/spec/features/admin/promotions/option_value_rule_spec.rb +6 -3
  353. data/spec/features/admin/promotions/tiered_calculator_spec.rb +4 -2
  354. data/spec/features/admin/users_spec.rb +14 -11
  355. data/spec/javascripts/translation_spec.js +8 -0
  356. data/spec/javascripts/views/number_with_currency_spec.js +6 -6
  357. data/spec/spec_helper.rb +28 -37
  358. data/spec/teaspoon_env.rb +61 -14
  359. data/spec/views/spree/admin/shared/navigation_footer_spec.rb +41 -0
  360. data/vendor/assets/javascripts/solidus_admin/Sortable.js +1540 -0
  361. data/vendor/assets/javascripts/solidus_admin/bootstrap.js +1878 -1816
  362. data/vendor/assets/javascripts/solidus_admin/flatpickr/flatpickr.js +2218 -0
  363. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_es-MX.js +19 -0
  364. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_alert.scss +7 -4
  365. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_badge.scss +1 -2
  366. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_breadcrumb.scss +4 -4
  367. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_button-group.scss +32 -64
  368. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_buttons.scss +38 -36
  369. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_card.scss +78 -31
  370. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_carousel.scss +6 -0
  371. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_close.scss +8 -3
  372. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_code.scss +4 -12
  373. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_custom-forms.scss +132 -89
  374. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_dropdown.scss +46 -43
  375. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_forms.scss +47 -104
  376. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_functions.scss +8 -12
  377. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_grid.scss +0 -1
  378. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_images.scss +0 -1
  379. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_input-group.scss +103 -120
  380. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_list-group.scss +2 -1
  381. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_mixins.scss +1 -0
  382. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_modal.scss +36 -10
  383. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_nav.scss +7 -7
  384. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_navbar.scss +35 -8
  385. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pagination.scss +33 -22
  386. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_popover.scss +106 -118
  387. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_print.scss +19 -6
  388. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_progress.scss +5 -4
  389. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_reboot.scss +39 -38
  390. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_root.scss +19 -0
  391. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tables.scss +40 -28
  392. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tooltip.scss +65 -57
  393. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_transitions.scss +2 -0
  394. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_type.scss +4 -2
  395. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_variables.scss +546 -489
  396. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-grid.scss +8 -13
  397. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-reboot.scss +7 -4
  398. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap.scss +5 -4
  399. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_alert.scss +1 -1
  400. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_background-variant.scss +10 -1
  401. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_badge.scss +2 -2
  402. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_breakpoints.scss +25 -7
  403. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_buttons.scss +50 -24
  404. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_caret.scss +65 -0
  405. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_float.scss +2 -0
  406. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_forms.scss +72 -16
  407. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_gradients.scss +8 -0
  408. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid-framework.scss +15 -4
  409. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid.scss +10 -5
  410. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_hover.scss +25 -46
  411. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_image.scss +3 -3
  412. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_list-group.scss +10 -15
  413. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_navbar-align.scss +2 -1
  414. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-text.scss +1 -2
  415. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_screen-reader.scss +3 -3
  416. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-emphasis.scss +2 -0
  417. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-hide.scss +1 -0
  418. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_visibility.scss +2 -0
  419. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_align.scss +2 -0
  420. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_background.scss +16 -3
  421. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_borders.scss +10 -3
  422. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_display.scss +13 -28
  423. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_flex.scss +2 -0
  424. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_position.scss +12 -1
  425. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_sizing.scss +2 -0
  426. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_spacing.scss +24 -14
  427. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_text.scss +7 -4
  428. data/vendor/assets/stylesheets/solidus_admin/flatpickr/flatpickr.css +857 -0
  429. metadata +57 -127
  430. data/Gemfile +0 -9
  431. data/app/assets/javascripts/spree/backend/address_states.js +0 -35
  432. data/app/assets/javascripts/spree/backend/adjustments.js.coffee +0 -17
  433. data/app/assets/javascripts/spree/backend/backbone-overrides.js.coffee +0 -23
  434. data/app/assets/javascripts/spree/backend/components/editable_table.js.coffee +0 -3
  435. data/app/assets/javascripts/spree/backend/components/tabs.coffee +0 -79
  436. data/app/assets/javascripts/spree/backend/flash.coffee +0 -17
  437. data/app/assets/javascripts/spree/backend/gateway.js.coffee +0 -21
  438. data/app/assets/javascripts/spree/backend/images/index.js.coffee +0 -13
  439. data/app/assets/javascripts/spree/backend/navigation.coffee +0 -10
  440. data/app/assets/javascripts/spree/backend/number_field_updater.coffee +0 -41
  441. data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +0 -33
  442. data/app/assets/javascripts/spree/backend/progress.coffee +0 -7
  443. data/app/assets/javascripts/spree/backend/promotions.js.coffee +0 -99
  444. data/app/assets/javascripts/spree/backend/select_payments.js.coffee +0 -0
  445. data/app/assets/javascripts/spree/backend/states.coffee +0 -22
  446. data/app/assets/javascripts/spree/backend/stock_management/index_add_forms.coffee +0 -61
  447. data/app/assets/javascripts/spree/backend/stock_management/index_update_forms.coffee +0 -66
  448. data/app/assets/javascripts/spree/backend/stock_management/stock_item.coffee +0 -4
  449. data/app/assets/javascripts/spree/backend/stock_transfers/count_update_forms.coffee +0 -44
  450. data/app/assets/javascripts/spree/backend/stock_transfers/edit.coffee +0 -6
  451. data/app/assets/javascripts/spree/backend/stock_transfers/receive.coffee +0 -5
  452. data/app/assets/javascripts/spree/backend/stock_transfers/received_counter.coffee +0 -9
  453. data/app/assets/javascripts/spree/backend/stock_transfers/stock_transfer.coffee +0 -17
  454. data/app/assets/javascripts/spree/backend/stock_transfers/transfer_item.coffee +0 -48
  455. data/app/assets/javascripts/spree/backend/stock_transfers/transfer_item_deleting.coffee +0 -22
  456. data/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee +0 -128
  457. data/app/assets/javascripts/spree/backend/store_credits.js.coffee +0 -40
  458. data/app/assets/javascripts/spree/backend/style_guide.coffee +0 -2
  459. data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +0 -108
  460. data/app/assets/javascripts/spree/backend/taxons.js.coffee +0 -73
  461. data/app/assets/javascripts/spree/backend/templates/promotions/rules/option_values_select.hbs +0 -1
  462. data/app/assets/javascripts/spree/backend/templates/stock_transfers/transfer_item.hbs +0 -48
  463. data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +0 -39
  464. data/app/assets/javascripts/spree/backend/views/tables/editable_table.js.coffee +0 -14
  465. data/app/assets/javascripts/spree/backend/views/tables/editable_table_row.js.coffee +0 -45
  466. data/app/assets/stylesheets/spree/backend/components/_date-picker.scss +0 -154
  467. data/app/assets/stylesheets/spree/backend/components/_number_field_update.scss +0 -13
  468. data/app/assets/stylesheets/spree/backend/sections/_stock_transfers.scss +0 -7
  469. data/app/assets/stylesheets/spree/backend/sections/_transfer_items.scss +0 -49
  470. data/app/controllers/spree/admin/stock_transfers_controller.rb +0 -151
  471. data/app/helpers/spree/admin/general_settings_helper.rb +0 -13
  472. data/app/helpers/spree/admin/inventory_settings_helper.rb +0 -9
  473. data/app/helpers/spree/admin/stock_transfers_helper.rb +0 -35
  474. data/app/helpers/spree/admin/tables_helper.rb +0 -13
  475. data/app/helpers/spree/admin/taxons_helper.rb +0 -9
  476. data/app/views/spree/admin/products/new.js.erb +0 -4
  477. data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +0 -7
  478. data/app/views/spree/admin/shared/_number_field_update_actions.html.erb +0 -5
  479. data/app/views/spree/admin/shared/_number_field_update_cell.html.erb +0 -4
  480. data/app/views/spree/admin/shared/_stock_sub_menu.html.erb +0 -8
  481. data/app/views/spree/admin/stock_transfers/_location.html.erb +0 -7
  482. data/app/views/spree/admin/stock_transfers/_transfer_item_actions.html.erb +0 -9
  483. data/app/views/spree/admin/stock_transfers/_transfer_item_table.html.erb +0 -72
  484. data/app/views/spree/admin/stock_transfers/edit.html.erb +0 -52
  485. data/app/views/spree/admin/stock_transfers/index.html.erb +0 -123
  486. data/app/views/spree/admin/stock_transfers/new.html.erb +0 -26
  487. data/app/views/spree/admin/stock_transfers/receive.html.erb +0 -38
  488. data/app/views/spree/admin/stock_transfers/show.html.erb +0 -50
  489. data/app/views/spree/admin/stock_transfers/tracking_info.html.erb +0 -46
  490. data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +0 -365
  491. data/spec/features/admin/stock_transfer_spec.rb +0 -115
  492. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  493. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  494. data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  495. data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  496. data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  497. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  498. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  499. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  500. data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  501. data/vendor/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  502. data/vendor/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
  503. data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  504. data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  505. data/vendor/assets/stylesheets/jquery-ui.datepicker.css.erb +0 -357
@@ -35,6 +35,46 @@ describe "Shipping Methods", type: :feature do
35
35
  click_on "Create"
36
36
  expect(current_path).to eql(spree.edit_admin_shipping_method_path(Spree::ShippingMethod.last))
37
37
  end
38
+
39
+ context 'with shipping method having a calculator with array or hash preference type' do
40
+ before do
41
+ class ComplexShipments < Spree::ShippingCalculator
42
+ preference :amount, :decimal
43
+ preference :currency, :string
44
+ preference :mapping, :hash
45
+ preference :list, :array
46
+
47
+ def self.description
48
+ "Complex Shipments"
49
+ end
50
+ end
51
+ @calculators = Rails.application.config.spree.calculators.shipping_methods
52
+ Rails.application.config.spree.calculators.shipping_methods = [ComplexShipments]
53
+ end
54
+
55
+ after do
56
+ Rails.application.config.spree.calculators.shipping_methods = @calculators
57
+ end
58
+
59
+ it "does not show array and hash form fields" do
60
+ click_link "New Shipping Method"
61
+
62
+ fill_in "shipping_method_name", with: "bullock cart"
63
+
64
+ within("#shipping_method_categories_field") do
65
+ check first("input[type='checkbox']")["name"]
66
+ end
67
+
68
+ click_on "Create"
69
+ select 'Complex Shipments', from: 'Base Calculator'
70
+ click_on "Update"
71
+
72
+ expect(page).to have_field('Amount')
73
+ expect(page).to have_field('Currency')
74
+ expect(page).to_not have_field('Mapping')
75
+ expect(page).to_not have_field('List')
76
+ end
77
+ end
38
78
  end
39
79
 
40
80
  # Regression test for https://github.com/spree/spree/issues/1331
@@ -10,23 +10,27 @@ describe "Homepage", type: :feature do
10
10
  end
11
11
 
12
12
  it "should have a link to overview" do
13
- within(".admin-nav-header") { page.find(:xpath, "a[@href='/admin']") }
13
+ within(".admin-nav-header") { expect(page).to have_link(nil, href: "/admin") }
14
14
  end
15
15
 
16
16
  it "should have a link to orders" do
17
- page.find_link("Orders")['/admin/orders']
17
+ expect(page).to have_link("Orders", href: "/admin/orders")
18
18
  end
19
19
 
20
20
  it "should have a link to products" do
21
- page.assert_selector(:link, text: "Products", count: 2)
21
+ expect(page).to have_link("Products", href: "/admin/products", count: 2)
22
22
  end
23
23
 
24
24
  it "should have a link to reports" do
25
- page.find_link("Reports")['/admin/reports']
25
+ expect(page).to have_link("Reports", href: "/admin/reports")
26
26
  end
27
27
 
28
28
  it "should have a link to configuration" do
29
- page.find_link("Settings")['/admin/configurations']
29
+ expect(page).to have_link("Settings", href: "/admin/stores")
30
+ end
31
+
32
+ it "should have a link to promotions" do
33
+ expect(page).to have_link("Promotions", href: "/admin/promotions", count: 2)
30
34
  end
31
35
  end
32
36
 
@@ -36,17 +40,30 @@ describe "Homepage", type: :feature do
36
40
  end
37
41
 
38
42
  it "should have a link to products" do
39
- within('.selected .admin-subnav') { page.find_link("Products")['/admin/products'] }
43
+ within('.selected .admin-subnav') { expect(page).to have_link("Products", href: "/admin/products") }
40
44
  end
41
45
 
42
46
  it "should have a link to option types" do
43
- within('.selected .admin-subnav') { page.find_link("Option Types")['/admin/option_types'] }
47
+ within('.selected .admin-subnav') { expect(page).to have_link("Option Types", href: "/admin/option_types") }
44
48
  end
45
49
 
46
50
  it "should have a link to property types" do
47
- within('.selected .admin-subnav') { page.find_link("Property Types")['/admin/properties'] }
51
+ within('.selected .admin-subnav') { expect(page).to have_link("Property Types", href: "/admin/properties") }
48
52
  end
53
+ end
49
54
 
55
+ context "visiting the promotions tab" do
56
+ before(:each) do
57
+ visit spree.admin_promotions_path
58
+ end
59
+
60
+ it "should have a link to promotions" do
61
+ within('.selected .admin-subnav') { expect(page).to have_link("Promotions", href: "/admin/promotions") }
62
+ end
63
+
64
+ it "should have a link to promotion categories" do
65
+ within('.selected .admin-subnav') { expect(page).to have_link("Promotion Categories", href: "/admin/promotion_categories") }
66
+ end
50
67
  end
51
68
  end
52
69
 
@@ -65,7 +65,7 @@ describe "Adjustments", type: :feature do
65
65
  fill_in "adjustment_amount", with: ""
66
66
  fill_in "adjustment_label", with: ""
67
67
  click_button "Continue"
68
- expect(page).to have_content("Description can't be blank")
68
+ expect(page).to have_content("Label can't be blank")
69
69
  expect(page).to have_content("Amount is not a number")
70
70
  end
71
71
  end
@@ -98,7 +98,7 @@ describe "Adjustments", type: :feature do
98
98
  fill_in "adjustment_amount", with: ""
99
99
  fill_in "adjustment_label", with: ""
100
100
  click_button "Continue"
101
- expect(page).to have_content("Description can't be blank")
101
+ expect(page).to have_content("Label can't be blank")
102
102
  expect(page).to have_content("Amount is not a number")
103
103
  end
104
104
  end
@@ -61,7 +61,7 @@ describe "Customer Details", type: :feature, js: true do
61
61
 
62
62
  it "displays an error" do
63
63
  click_button "Update"
64
- expect(page).to have_content Spree.t(:insufficient_stock_for_order)
64
+ expect(page).to have_content I18n.t('spree.insufficient_stock_for_order')
65
65
  end
66
66
  end
67
67
  end
@@ -121,14 +121,29 @@ describe "Customer Details", type: :feature, js: true do
121
121
  expect(page).to have_content("Shipping address first name can't be blank")
122
122
  end
123
123
 
124
- it "updates order email for an existing order with a user" do
125
- order.update_columns(ship_address_id: ship_address.id, bill_address_id: bill_address.id, state: "confirm", completed_at: nil)
126
- previous_user = order.user
127
- click_link "Customer"
128
- fill_in "order_email", with: "newemail@example.com"
129
- expect { click_button "Update" }.to change { order.reload.email }.to "newemail@example.com"
130
- expect(order.user_id).to eq previous_user.id
131
- expect(order.user.email).to eq previous_user.email
124
+ context "for an order in confirm state with a user" do
125
+ let(:user) { order.user }
126
+
127
+ before do
128
+ order.update_columns(
129
+ ship_address_id: ship_address.id,
130
+ bill_address_id: bill_address.id,
131
+ state: "confirm",
132
+ completed_at: nil
133
+ )
134
+ end
135
+
136
+ it "updating order email works" do
137
+ click_link "Customer"
138
+ fill_in "order_email", with: "newemail@example.com"
139
+ click_button "Update"
140
+ expect(page).to have_content 'Customer Details Updated'
141
+ click_link "Customer"
142
+ expect(page).to have_field 'Customer E-Mail', with: order.reload.email
143
+ within '#order_user_link' do
144
+ expect(page).to have_link user.email
145
+ end
146
+ end
132
147
  end
133
148
 
134
149
  context "country associated was removed" do
@@ -61,11 +61,11 @@ describe "Orders Listing", type: :feature, js: true do
61
61
 
62
62
  context "searching orders" do
63
63
  context "when there are multiple stores" do
64
- let(:stores) { FactoryGirl.create_pair(:store) }
64
+ let(:stores) { FactoryBot.create_pair(:store) }
65
65
 
66
66
  before do
67
67
  stores.each do |store|
68
- FactoryGirl.create(:completed_order_with_totals, number: "R#{store.id}999", store: store)
68
+ FactoryBot.create(:completed_order_with_totals, number: "R#{store.id}999", store: store)
69
69
  end
70
70
  end
71
71
 
@@ -73,7 +73,7 @@ describe "Orders Listing", type: :feature, js: true do
73
73
  main_store, other_store = stores
74
74
 
75
75
  click_on "Filter Results"
76
- select main_store.name, from: Spree.t(:store)
76
+ select main_store.name, from: I18n.t('spree.store')
77
77
  click_on "Filter Results"
78
78
 
79
79
  within_row(1) do
@@ -88,7 +88,7 @@ describe "Orders Listing", type: :feature, js: true do
88
88
  context "when there's a single store" do
89
89
  it "should be able to search orders" do
90
90
  click_on "Filter Results"
91
- fill_in "q_number_cont", with: "R200"
91
+ fill_in "q_number_start", with: "R200"
92
92
  click_on 'Filter Results'
93
93
  within_row(1) do
94
94
  expect(page).to have_content("R200")
@@ -100,7 +100,7 @@ describe "Orders Listing", type: :feature, js: true do
100
100
 
101
101
  it "should be able to filter on variant_id" do
102
102
  click_on "Filter Results"
103
- select2_search @order1.products.first.sku, from: Spree.t(:variant)
103
+ select2_search @order1.products.first.sku, from: I18n.t('spree.variant')
104
104
  click_on 'Filter Results'
105
105
 
106
106
  within_row(1) do
@@ -139,9 +139,6 @@ describe "Orders Listing", type: :feature, js: true do
139
139
  click_on "Filter Results"
140
140
  fill_in "q_created_at_gt", with: Date.current
141
141
 
142
- # Just so the datepicker gets out of poltergeists way.
143
- page.execute_script("$('#q_created_at_gt').datepicker('widget').hide();")
144
-
145
142
  click_on 'Filter Results'
146
143
  within_row(1) { expect(page).to have_content("R100") }
147
144
 
@@ -161,7 +158,7 @@ describe "Orders Listing", type: :feature, js: true do
161
158
 
162
159
  it "only shows the orders with the selected promotion" do
163
160
  click_on "Filter Results"
164
- fill_in "q_order_promotions_promotion_code_value_cont", with: promotion.codes.first.value
161
+ fill_in "q_order_promotions_promotion_code_value_start", with: promotion.codes.first.value
165
162
  click_on 'Filter Results'
166
163
  within_row(1) { expect(page).to have_content("R100") }
167
164
  within("table#listing_orders") { expect(page).not_to have_content("R200") }
@@ -14,7 +14,6 @@ describe "Log entries", type: :feature do
14
14
  )
15
15
 
16
16
  payment.log_entries.create(
17
- source: payment.source,
18
17
  details: response.to_yaml
19
18
  )
20
19
  end
@@ -24,6 +24,12 @@ describe "New Order", type: :feature do
24
24
  expect(current_path).to eql(spree.edit_admin_order_customer_path(Spree::Order.last))
25
25
  end
26
26
 
27
+ it "default line item quantity is 1", js: true do
28
+ within ".line-items" do
29
+ expect(page).to have_field 'quantity', with: '1'
30
+ end
31
+ end
32
+
27
33
  it "completes new order succesfully without using the cart", js: true do
28
34
  add_line_item product.name
29
35
 
@@ -146,7 +152,7 @@ describe "New Order", type: :feature do
146
152
  click_on "Update"
147
153
 
148
154
  # Automatically redirected to Shipments page
149
- select2_search product.name, from: Spree.t(:name_or_sku)
155
+ select2_search product.name, from: I18n.t('spree.name_or_sku')
150
156
 
151
157
  click_icon :plus
152
158
 
@@ -177,7 +183,7 @@ describe "New Order", type: :feature do
177
183
  click_link "Customer"
178
184
  targetted_select2 user.email, from: "#s2id_customer_search"
179
185
  click_button "Update"
180
- expect(Spree::Order.last.state).to eq 'delivery'
186
+ expect(page).to have_css('.order-state', text: 'Delivery')
181
187
  end
182
188
  end
183
189
 
@@ -6,12 +6,15 @@ describe "Order Details", type: :feature, js: true do
6
6
 
7
7
  let!(:stock_location) { create(:stock_location_with_items) }
8
8
  let!(:product) { create(:product, name: 'spree t-shirt', price: 20.00) }
9
- let!(:tote) { create(:product, name: "Tote", price: 15.00) }
10
9
  let(:order) { create(:order, state: 'complete', completed_at: "2011-02-01 12:36:15", number: "R100") }
11
10
  let(:state) { create(:state) }
11
+ let(:line_item) { order.line_items.first }
12
+
13
+ let!(:shipment1) do
14
+ order.shipments.create(stock_location_id: stock_location.id)
15
+ end
12
16
 
13
17
  before do
14
- @shipment1 = order.shipments.create(stock_location_id: stock_location.id)
15
18
  order.contents.add(product.master, 2)
16
19
  # order.contents.add causes things (like line items & shipments) to get
17
20
  # cached, and these are going to change during this spec so we go ahead and
@@ -23,8 +26,14 @@ describe "Order Details", type: :feature, js: true do
23
26
  stub_authorization!
24
27
 
25
28
  context "cart edit page" do
29
+ let(:track_inventory) { true }
30
+ let(:backorderable) { true }
31
+ let(:count_on_hand) { 100 }
32
+
26
33
  before do
27
- product.master.stock_items.first.update_column(:count_on_hand, 100)
34
+ product.master.update_columns(track_inventory: track_inventory)
35
+ product.master.stock_items.update_all(count_on_hand: count_on_hand, backorderable: backorderable)
36
+
28
37
  visit spree.cart_admin_order_path(order)
29
38
  end
30
39
 
@@ -32,7 +41,7 @@ describe "Order Details", type: :feature, js: true do
32
41
  expect(page).to have_content("spree t-shirt")
33
42
  expect(page).to have_content("$40.00")
34
43
 
35
- within_row(1) do
44
+ within('tr', text: line_item.sku) do
36
45
  click_icon :edit
37
46
  fill_in "quantity", with: "1"
38
47
  end
@@ -54,7 +63,7 @@ describe "Order Details", type: :feature, js: true do
54
63
  it "can remove an item from a shipment" do
55
64
  expect(page).to have_content("spree t-shirt")
56
65
 
57
- within_row(1) do
66
+ within('tr', text: line_item.sku) do
58
67
  accept_confirm "Are you sure you want to delete this record?" do
59
68
  click_icon :trash
60
69
  end
@@ -70,7 +79,7 @@ describe "Order Details", type: :feature, js: true do
70
79
  it "can cancel removing an item from a shipment" do
71
80
  expect(page).to have_content("spree t-shirt")
72
81
 
73
- within_row(1) do
82
+ within('tr', text: line_item.sku) do
74
83
  # Click "cancel" on confirmation dialog
75
84
  dismiss_confirm "Are you sure you want to delete this record?" do
76
85
  click_icon :trash
@@ -83,31 +92,48 @@ describe "Order Details", type: :feature, js: true do
83
92
  it "can add tracking information" do
84
93
  visit spree.edit_admin_order_path(order)
85
94
 
86
- within(".show-tracking") do
95
+ within("tr", text: "Tracking Number") do
87
96
  click_icon :edit
88
- end
89
- fill_in "tracking", with: "FOOBAR"
90
- click_icon :check
97
+ fill_in "tracking", with: "FOOBAR"
98
+ click_icon :check
91
99
 
92
- expect(page).not_to have_css("input[name=tracking]")
93
- expect(page).to have_content("Tracking Number FOOBAR")
94
- end
95
-
96
- it "can change the shipping method" do
97
- order = create(:completed_order_with_totals)
98
- visit spree.edit_admin_order_path(order)
99
- within("table.index tr.show-method") do
100
- click_icon :edit
100
+ expect(page).not_to have_css("input")
101
+ expect(page).to have_content("Tracking Number FOOBAR")
101
102
  end
102
- select "UPS Ground $100.00", from: "selected_shipping_rate_id"
103
- click_icon :check
104
-
105
- expect(page).not_to have_css('#selected_shipping_rate_id')
106
- expect(page).to have_content("UPS Ground")
107
103
  end
108
104
 
109
105
  context "with a completed order" do
110
106
  let!(:order) { create(:completed_order_with_totals) }
107
+ let(:shipment1) { order.shipments[0] }
108
+
109
+ it "can change the shipping method" do
110
+ visit spree.edit_admin_order_path(order)
111
+
112
+ within("tr", text: "Shipping Method") do
113
+ click_icon :edit
114
+ select "UPS Ground $100.00"
115
+ click_icon :check
116
+ end
117
+
118
+ expect(page).not_to have_css('#selected_shipping_rate_id')
119
+ expect(page).to have_content("UPS Ground")
120
+ end
121
+
122
+ it "can use admin-only shipping methods" do
123
+ create(:shipping_method, name: "Admin Free Shipping", cost: 0, available_to_users: false)
124
+
125
+ visit spree.edit_admin_order_path(order)
126
+
127
+ within("tr", text: "Shipping Method") do
128
+ click_icon :edit
129
+ select "Admin Free Shipping $0.00"
130
+ click_icon :check
131
+ end
132
+
133
+ expect(page).not_to have_css('#selected_shipping_rate_id')
134
+ expect(page).to have_no_content("UPS Ground")
135
+ expect(page).to have_content("Admin Free Shipping")
136
+ end
111
137
 
112
138
  it "will show the variant sku" do
113
139
  visit spree.edit_admin_order_path(order)
@@ -125,26 +151,22 @@ describe "Order Details", type: :feature, js: true do
125
151
  end
126
152
 
127
153
  context "variant doesn't track inventory" do
128
- before do
129
- tote.master.update_column :track_inventory, false
130
- # make sure there's no stock level for any item
131
- tote.master.stock_items.update_all count_on_hand: 0, backorderable: false
132
- end
154
+ let(:track_inventory) { false }
155
+ let(:backorderable) { false }
156
+ let(:count_on_hand) { 0 }
133
157
 
134
158
  it "adds variant to order just fine" do
135
- add_line_item tote.name
159
+ add_line_item "spree t-shirt"
136
160
 
137
161
  within(".line-items") do
138
- expect(page).to have_content(tote.name)
162
+ expect(page).to have_content("spree t-shirt")
139
163
  end
140
164
  end
141
165
  end
142
166
 
143
167
  context "variant out of stock and not backorderable" do
144
- before do
145
- product.master.stock_items.first.update_column(:backorderable, false)
146
- product.master.stock_items.first.update_column(:count_on_hand, 0)
147
- end
168
+ let(:backorderable) { false }
169
+ let(:count_on_hand) { 0 }
148
170
 
149
171
  it "doesn't display the out of stock variant in the search results" do
150
172
  click_on 'Add Item'
@@ -168,7 +190,6 @@ describe "Order Details", type: :feature, js: true do
168
190
  end
169
191
 
170
192
  context 'splitting to location' do
171
- before { visit spree.edit_admin_order_path(order) }
172
193
  # can not properly implement until poltergeist supports checking alert text
173
194
  # see https://github.com/teampoltergeist/poltergeist/pull/516
174
195
  it 'should warn you if you have not selected a location or shipment'
@@ -178,7 +199,9 @@ describe "Order Details", type: :feature, js: true do
178
199
  expect(order.shipments.count).to eq(1)
179
200
  expect(order.shipments.first.inventory_units_for(product.master).count).to eq(2)
180
201
 
181
- within_row(1) { click_icon 'arrows-h' }
202
+ visit spree.edit_admin_order_path(order)
203
+
204
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
182
205
  complete_split_to(stock_location2)
183
206
 
184
207
  expect(page).to have_css('.shipment', count: 2)
@@ -190,9 +213,11 @@ describe "Order Details", type: :feature, js: true do
190
213
  end
191
214
 
192
215
  it 'should allow me to make a transfer via splitting off all stock' do
216
+ visit spree.edit_admin_order_path(order)
217
+
193
218
  expect(order.shipments.first.stock_location.id).to eq(stock_location.id)
194
219
 
195
- within_row(1) { click_icon 'arrows-h' }
220
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
196
221
  complete_split_to(stock_location2, quantity: 2)
197
222
 
198
223
  expect(page).to have_content("Pending package from 'Clarksville'")
@@ -204,9 +229,11 @@ describe "Order Details", type: :feature, js: true do
204
229
  end
205
230
 
206
231
  it 'should not allow me to split more than I had in the original shipment' do
232
+ visit spree.edit_admin_order_path(order)
233
+
207
234
  expect(order.shipments.first.stock_location.id).to eq(stock_location.id)
208
235
 
209
- within_row(1) { click_icon 'arrows-h' }
236
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
210
237
  complete_split_to(stock_location2, quantity: 5)
211
238
 
212
239
  expect(page).to have_content("Pending package from 'Clarksville'")
@@ -218,9 +245,11 @@ describe "Order Details", type: :feature, js: true do
218
245
  end
219
246
 
220
247
  it 'should not allow less than or equal to zero qty' do
248
+ visit spree.edit_admin_order_path(order)
249
+
221
250
  expect(order.shipments.first.stock_location.id).to eq(stock_location.id)
222
251
 
223
- within_row(1) { click_icon 'arrows-h' }
252
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
224
253
 
225
254
  accept_alert "Quantity must be greater than 0" do
226
255
  complete_split_to(stock_location2, quantity: 0)
@@ -243,7 +272,7 @@ describe "Order Details", type: :feature, js: true do
243
272
 
244
273
  context 'A shipment has shipped' do
245
274
  it 'should not show or let me back to the cart page, nor show the shipment edit buttons' do
246
- order = create(:order, state: 'payment', number: "R100")
275
+ order = create(:order, state: 'payment')
247
276
  order.shipments.create!(stock_location_id: stock_location.id, state: 'shipped')
248
277
 
249
278
  visit spree.cart_admin_order_path(order)
@@ -262,10 +291,12 @@ describe "Order Details", type: :feature, js: true do
262
291
  product.master.stock_items.last.update_column(:backorderable, false)
263
292
  product.master.stock_items.last.update_column(:count_on_hand, 0)
264
293
 
265
- within_row(1) { click_icon 'arrows-h' }
266
- complete_split_to(stock_location2, quantity: 2)
294
+ visit spree.edit_admin_order_path(order)
267
295
 
268
- accept_alert "Desired shipment not enough stock in desired stock location"
296
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
297
+ accept_alert "Desired shipment not enough stock in desired stock location" do
298
+ complete_split_to(stock_location2, quantity: 2)
299
+ end
269
300
 
270
301
  expect(order.shipments.count).to eq(1)
271
302
  expect(order.shipments.first.inventory_units_for(product.master).count).to eq(2)
@@ -278,7 +309,9 @@ describe "Order Details", type: :feature, js: true do
278
309
  product.master.stock_items.last.update_column(:count_on_hand, 0)
279
310
  product.master.stock_items.last.update_column(:backorderable, true)
280
311
 
281
- within_row(1) { click_icon 'arrows-h' }
312
+ visit spree.edit_admin_order_path(order)
313
+
314
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
282
315
  complete_split_to(stock_location2, quantity: 2)
283
316
 
284
317
  expect(page).to have_content("Pending package from 'Clarksville'")
@@ -295,10 +328,12 @@ describe "Order Details", type: :feature, js: true do
295
328
  order.contents.add(create(:variant), 2)
296
329
  order.reload
297
330
 
331
+ visit spree.edit_admin_order_path(order)
332
+
298
333
  expect(order.shipments.count).to eq(1)
299
334
  expect(order.shipments.first.manifest.count).to eq(2)
300
335
 
301
- within_row(1) { click_icon 'arrows-h' }
336
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
302
337
  complete_split_to(stock_location2)
303
338
 
304
339
  expect(page).to have_css('.shipment', count: 2)
@@ -312,14 +347,15 @@ describe "Order Details", type: :feature, js: true do
312
347
  end
313
348
 
314
349
  context 'removing an item' do
350
+ let!(:shipment2) { order.shipments.create(stock_location_id: stock_location2.id) }
351
+
315
352
  it "removes only the one item" do
316
- @shipment2 = order.shipments.create(stock_location_id: stock_location2.id)
317
- order.line_items[0].inventory_units[0].update!(shipment: @shipment2)
353
+ order.line_items[0].inventory_units[0].update!(shipment: shipment2)
318
354
  visit spree.edit_admin_order_path(order)
319
355
 
320
356
  expect(page).to have_css('.stock-item', count: 2)
321
357
 
322
- within '[data-hook=admin_shipment_form]', text: @shipment2.number do
358
+ within '[data-hook=admin_shipment_form]', text: shipment2.number do
323
359
  accept_confirm "Are you sure you want to delete this record?" do
324
360
  click_icon :trash
325
361
  end
@@ -330,20 +366,19 @@ describe "Order Details", type: :feature, js: true do
330
366
  end
331
367
 
332
368
  context 'splitting to shipment' do
333
- before do
334
- @shipment2 = order.shipments.create(stock_location_id: stock_location2.id)
335
- visit spree.edit_admin_order_path(order)
336
- end
369
+ let!(:shipment2) { order.shipments.create(stock_location_id: stock_location2.id) }
337
370
 
338
371
  it 'should delete the old shipment if enough are split off' do
339
372
  expect(order.shipments.count).to eq(2)
340
373
 
341
- within_row(1) { click_icon 'arrows-h' }
342
- complete_split_to(@shipment2, quantity: 2)
374
+ visit spree.edit_admin_order_path(order)
375
+
376
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
377
+ complete_split_to(shipment2, quantity: 2)
343
378
 
344
379
  expect(page).not_to have_content(/Move .* to/)
345
380
 
346
- expect(page).to have_css("#shipment_#{@shipment2.id}", count: 1)
381
+ expect(page).to have_css("#shipment_#{shipment2.id}", count: 1)
347
382
 
348
383
  expect(order.shipments.count).to eq(1)
349
384
  expect(order.shipments.last.inventory_units_for(product.master).count).to eq(2)
@@ -354,18 +389,20 @@ describe "Order Details", type: :feature, js: true do
354
389
 
355
390
  it 'should not allow a split if the receiving shipment qty plus the incoming is greater than the count_on_hand' do
356
391
  expect(order.shipments.count).to eq(2)
392
+
393
+ visit spree.edit_admin_order_path(order)
357
394
  expect(page).to have_css('.item-name', text: product.name, count: 1)
358
395
 
359
- within_row(1) { click_icon 'arrows-h' }
360
- complete_split_to(@shipment2, quantity: 1)
396
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
397
+ complete_split_to(shipment2, quantity: 1)
361
398
 
362
399
  expect(page).to have_css('.item-name', text: product.name, count: 2)
363
400
 
364
401
  within(all('.stock-contents', count: 2).first) do
365
- within_row(1) { click_icon 'arrows-h' }
402
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
366
403
 
367
404
  accept_alert("Desired shipment not enough stock in desired stock location") do
368
- complete_split_to(@shipment2, quantity: 200)
405
+ complete_split_to(shipment2, quantity: 200)
369
406
  end
370
407
  end
371
408
 
@@ -375,21 +412,24 @@ describe "Order Details", type: :feature, js: true do
375
412
  end
376
413
 
377
414
  it 'should not allow a shipment to split stock to itself' do
378
- within_row(1) { click_icon 'arrows-h' }
415
+ visit spree.edit_admin_order_path(order)
416
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
379
417
  click_on 'Choose location'
380
418
  within '.select2-results' do
381
- expect(page).to have_content(@shipment2.number)
382
- expect(page).not_to have_content(@shipment1.number)
419
+ expect(page).to have_content(shipment2.number)
420
+ expect(page).not_to have_content(shipment1.number)
383
421
  end
384
422
  end
385
423
 
386
424
  it 'should split fine if more than one line_item is in the receiving shipment' do
387
425
  variant2 = create(:variant)
388
- order.contents.add(variant2, 2, shipment: @shipment2)
426
+ order.contents.add(variant2, 2, shipment: shipment2)
389
427
  order.reload
390
428
 
391
- within_row(1) { click_icon 'arrows-h' }
392
- complete_split_to(@shipment2, quantity: 1)
429
+ visit spree.edit_admin_order_path(order)
430
+
431
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
432
+ complete_split_to(shipment2, quantity: 1)
393
433
 
394
434
  expect(page).not_to have_content(/Move .* to/)
395
435
  expect(page).to have_css('.shipment', count: 2)
@@ -404,19 +444,21 @@ describe "Order Details", type: :feature, js: true do
404
444
 
405
445
  context 'receiving shipment can backorder' do
406
446
  it 'should add more to the backorder' do
407
- @shipment1.inventory_units.update_all(state: :on_hand)
447
+ shipment1.inventory_units.update_all(state: :on_hand)
408
448
  product.master.stock_items.last.update_column(:backorderable, true)
409
449
  product.master.stock_items.last.update_column(:count_on_hand, 0)
410
- expect(@shipment2.reload.backordered?).to eq(false)
450
+ expect(shipment2.reload).not_to be_backordered
451
+
452
+ visit spree.edit_admin_order_path(order)
411
453
 
412
- within_row(1) { click_icon 'arrows-h' }
413
- complete_split_to(@shipment2, quantity: 1)
454
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
455
+ complete_split_to(shipment2, quantity: 1)
414
456
 
415
457
  expect(page).to have_content("1 x Backordered")
416
458
 
417
459
  within('.stock-contents', text: "1 x On hand") do
418
- within_row(1) { click_icon 'arrows-h' }
419
- complete_split_to(@shipment2, quantity: 1)
460
+ within('tr', text: line_item.sku) { click_icon 'arrows-h' }
461
+ complete_split_to(shipment2, quantity: 1)
420
462
  end
421
463
 
422
464
  # Empty shipment should be removed
@@ -508,10 +550,10 @@ describe "Order Details", type: :feature, js: true do
508
550
  it "can change the shipping method" do
509
551
  order = create(:completed_order_with_totals)
510
552
  visit spree.edit_admin_order_path(order)
511
- within("table.index tr.show-method") do
553
+ within("tr", text: "Shipping Method") do
512
554
  click_icon :edit
513
555
  end
514
- select "UPS Ground $100.00", from: "selected_shipping_rate_id"
556
+ select "UPS Ground $100.00"
515
557
  click_icon :check
516
558
 
517
559
  expect(page).not_to have_css('#selected_shipping_rate_id')