solidus_core 2.10.1 → 2.11.2

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 (496) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +31 -2
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/mailers/spree/base_mailer.rb +4 -0
  5. data/app/mailers/spree/order_mailer.rb +1 -1
  6. data/app/models/concerns/spree/active_storage_adapter.rb +116 -0
  7. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +69 -0
  8. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  9. data/app/models/concerns/spree/default_price.rb +1 -1
  10. data/app/models/concerns/spree/soft_deletable.rb +18 -0
  11. data/app/models/concerns/spree/user_address_book.rb +86 -32
  12. data/app/models/concerns/spree/user_methods.rb +3 -2
  13. data/app/models/spree/ability.rb +34 -10
  14. data/app/models/spree/address.rb +94 -17
  15. data/app/models/spree/address/name.rb +49 -0
  16. data/app/models/spree/address/state_validator.rb +71 -0
  17. data/app/models/spree/adjustment.rb +1 -1
  18. data/app/models/spree/base.rb +1 -0
  19. data/app/models/spree/calculator/default_tax.rb +1 -1
  20. data/app/models/spree/calculator/percent_per_item.rb +4 -4
  21. data/app/models/spree/calculator/price_sack.rb +1 -1
  22. data/app/models/spree/credit_card.rb +2 -2
  23. data/app/models/spree/customer_return.rb +4 -2
  24. data/app/models/spree/exchange.rb +1 -1
  25. data/app/models/spree/image/active_storage_attachment.rb +21 -0
  26. data/app/models/spree/inventory_unit.rb +1 -1
  27. data/app/models/spree/line_item.rb +13 -4
  28. data/app/models/spree/option_type.rb +1 -1
  29. data/app/models/spree/option_value.rb +2 -2
  30. data/app/models/spree/order.rb +91 -20
  31. data/app/models/spree/order/checkout.rb +1 -0
  32. data/app/models/spree/order_inventory.rb +16 -4
  33. data/app/models/spree/order_merger.rb +6 -4
  34. data/app/models/spree/order_promotion.rb +1 -1
  35. data/app/models/spree/order_updater.rb +11 -10
  36. data/app/models/spree/payment.rb +3 -3
  37. data/app/models/spree/payment/cancellation.rb +3 -3
  38. data/app/models/spree/payment/processing.rb +54 -30
  39. data/app/models/spree/payment_method.rb +8 -9
  40. data/app/models/spree/preference.rb +1 -1
  41. data/app/models/spree/price.rb +2 -8
  42. data/app/models/spree/product.rb +19 -14
  43. data/app/models/spree/product/scopes.rb +9 -4
  44. data/app/models/spree/promotion.rb +18 -7
  45. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  46. data/app/models/spree/promotion_action.rb +1 -7
  47. data/app/models/spree/promotion_code.rb +6 -1
  48. data/app/models/spree/promotion_code_batch.rb +1 -1
  49. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  50. data/app/models/spree/promotion_rule.rb +1 -1
  51. data/app/models/spree/promotion_rule_role.rb +1 -1
  52. data/app/models/spree/refund.rb +60 -12
  53. data/app/models/spree/reimbursement.rb +27 -0
  54. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
  55. data/app/models/spree/return_authorization.rb +1 -1
  56. data/app/models/spree/return_item.rb +21 -10
  57. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  58. data/app/models/spree/role.rb +1 -1
  59. data/app/models/spree/shipment.rb +2 -2
  60. data/app/models/spree/shipping_calculator.rb +1 -1
  61. data/app/models/spree/shipping_manifest.rb +2 -2
  62. data/app/models/spree/shipping_method.rb +2 -9
  63. data/app/models/spree/shipping_rate.rb +1 -1
  64. data/app/models/spree/shipping_rate_tax.rb +1 -1
  65. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  66. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  67. data/app/models/spree/stock/package.rb +1 -1
  68. data/app/models/spree/stock/simple_coordinator.rb +1 -3
  69. data/app/models/spree/stock_item.rb +2 -8
  70. data/app/models/spree/stock_movement.rb +2 -0
  71. data/app/models/spree/store.rb +1 -1
  72. data/app/models/spree/store_credit.rb +1 -7
  73. data/app/models/spree/store_credit_category.rb +30 -3
  74. data/app/models/spree/store_credit_event.rb +1 -7
  75. data/app/models/spree/store_credit_reason.rb +0 -4
  76. data/app/models/spree/tax/tax_helpers.rb +1 -1
  77. data/app/models/spree/tax_category.rb +2 -8
  78. data/app/models/spree/tax_rate.rb +7 -7
  79. data/app/models/spree/taxon.rb +1 -1
  80. data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
  81. data/app/models/spree/user_address.rb +8 -2
  82. data/app/models/spree/variant.rb +7 -13
  83. data/app/models/spree/variant_property_rule.rb +5 -1
  84. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  85. data/app/models/spree/zone.rb +1 -1
  86. data/config/locales/en.yml +44 -5
  87. data/db/default/spree/countries.rb +1 -1
  88. data/db/default/spree/states.rb +12 -4
  89. data/db/default/spree/store_credit.rb +2 -2
  90. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  91. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  92. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  93. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  94. data/lib/generators/solidus/install/install_generator.rb +253 -0
  95. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +36 -5
  96. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  97. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  98. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  99. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  100. data/lib/generators/spree/install/install_generator.rb +7 -189
  101. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  102. data/lib/spree/app_configuration.rb +117 -51
  103. data/lib/spree/awesome_nested_set_override.rb +44 -0
  104. data/lib/spree/core.rb +5 -11
  105. data/lib/spree/core/controller_helpers/auth.rb +17 -4
  106. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  107. data/lib/spree/core/controller_helpers/order.rb +8 -7
  108. data/lib/spree/core/controller_helpers/strong_parameters.rb +21 -7
  109. data/lib/spree/core/engine.rb +39 -2
  110. data/lib/spree/core/importer/order.rb +26 -11
  111. data/lib/spree/core/permalinks.rb +1 -3
  112. data/lib/spree/core/product_filters.rb +6 -5
  113. data/lib/spree/core/state_machines.rb +20 -1
  114. data/lib/spree/core/state_machines/order.rb +249 -0
  115. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  116. data/lib/spree/core/version.rb +1 -1
  117. data/lib/spree/encryptor.rb +25 -0
  118. data/lib/spree/event.rb +40 -7
  119. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  120. data/lib/spree/event/configuration.rb +11 -6
  121. data/lib/spree/event/subscriber.rb +38 -18
  122. data/lib/spree/event/subscriber_registry.rb +92 -0
  123. data/lib/spree/i18n.rb +1 -1
  124. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  125. data/lib/spree/paranoia_deprecations.rb +32 -12
  126. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  127. data/lib/spree/permission_sets/default_customer.rb +16 -16
  128. data/lib/spree/permission_sets/order_display.rb +11 -11
  129. data/lib/spree/permission_sets/order_management.rb +1 -1
  130. data/lib/spree/permission_sets/product_display.rb +9 -9
  131. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  132. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  133. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  134. data/lib/spree/permission_sets/stock_display.rb +2 -2
  135. data/lib/spree/permission_sets/stock_management.rb +1 -1
  136. data/lib/spree/permission_sets/user_display.rb +3 -3
  137. data/lib/spree/permission_sets/user_management.rb +4 -3
  138. data/lib/spree/permitted_attributes.rb +79 -9
  139. data/lib/spree/preferences/preferable.rb +4 -3
  140. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  141. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  142. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  143. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  144. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  145. data/lib/spree/testing_support/common_rake.rb +3 -3
  146. data/lib/spree/testing_support/dummy_app.rb +44 -23
  147. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  148. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  149. data/lib/spree/testing_support/factories/address_factory.rb +1 -2
  150. data/lib/spree/testing_support/factories/image_factory.rb +1 -1
  151. data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
  152. data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
  153. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  154. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
  155. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
  156. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
  157. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
  158. data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
  159. data/lib/spree/testing_support/factories/user_factory.rb +4 -1
  160. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  161. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  162. data/lib/spree/testing_support/job_helpers.rb +24 -0
  163. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  164. data/lib/spree/testing_support/preferences.rb +3 -1
  165. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  166. data/lib/spree/testing_support/translations.rb +25 -0
  167. data/solidus_core.gemspec +8 -5
  168. metadata +99 -376
  169. data/script/rails +0 -10
  170. data/spec/fixtures/thinking-cat.jpg +0 -0
  171. data/spec/helpers/base_helper_spec.rb +0 -168
  172. data/spec/helpers/products_helper_spec.rb +0 -202
  173. data/spec/helpers/taxons_helper_spec.rb +0 -43
  174. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  175. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  176. data/spec/lib/i18n_spec.rb +0 -97
  177. data/spec/lib/search/base_spec.rb +0 -91
  178. data/spec/lib/search/variant_spec.rb +0 -115
  179. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  180. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  181. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  182. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  183. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  184. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  185. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  186. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  187. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -41
  188. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  189. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  190. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  191. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  192. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  193. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  194. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  195. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  196. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  197. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  198. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  199. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  201. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  202. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  204. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  205. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  206. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  207. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  208. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  209. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  210. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  212. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  214. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  215. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  216. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  217. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  218. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  219. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  221. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  222. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  223. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  224. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  226. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  227. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  228. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  229. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  230. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  231. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  232. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  233. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  234. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  235. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  237. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  238. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  240. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  241. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  242. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  243. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  244. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  245. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  246. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  247. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  248. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  249. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  250. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  251. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  252. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  253. data/spec/lib/spree/core/version_spec.rb +0 -19
  254. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  255. data/spec/lib/spree/event_spec.rb +0 -130
  256. data/spec/lib/spree/localized_number_spec.rb +0 -45
  257. data/spec/lib/spree/migrations_spec.rb +0 -32
  258. data/spec/lib/spree/money_spec.rb +0 -298
  259. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  260. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  261. data/spec/lib/tasks/dummy_task.rake +0 -12
  262. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  263. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  264. data/spec/mailers/carton_mailer_spec.rb +0 -44
  265. data/spec/mailers/order_mailer_spec.rb +0 -117
  266. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  267. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  268. data/spec/mailers/test_mailer_spec.rb +0 -13
  269. data/spec/models/spree/ability_spec.rb +0 -279
  270. data/spec/models/spree/address_spec.rb +0 -399
  271. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  272. data/spec/models/spree/adjustment_spec.rb +0 -339
  273. data/spec/models/spree/asset_spec.rb +0 -25
  274. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  275. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  276. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  277. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  278. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  279. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  280. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  281. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  282. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  283. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  284. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  285. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  286. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  287. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  288. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  289. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  290. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  291. data/spec/models/spree/calculator_spec.rb +0 -43
  292. data/spec/models/spree/carton_spec.rb +0 -145
  293. data/spec/models/spree/classification_spec.rb +0 -126
  294. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  295. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  296. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  297. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  298. data/spec/models/spree/country_spec.rb +0 -154
  299. data/spec/models/spree/credit_card_spec.rb +0 -373
  300. data/spec/models/spree/customer_return_spec.rb +0 -294
  301. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  302. data/spec/models/spree/exchange_spec.rb +0 -76
  303. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  304. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  305. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  306. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  307. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  308. data/spec/models/spree/gateway_spec.rb +0 -14
  309. data/spec/models/spree/image_spec.rb +0 -25
  310. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  311. data/spec/models/spree/line_item_spec.rb +0 -240
  312. data/spec/models/spree/option_type_spec.rb +0 -16
  313. data/spec/models/spree/option_value_spec.rb +0 -52
  314. data/spec/models/spree/order/address_spec.rb +0 -52
  315. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  316. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  317. data/spec/models/spree/order/checkout_spec.rb +0 -740
  318. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  319. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  320. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  321. data/spec/models/spree/order/payment_spec.rb +0 -280
  322. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  323. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  324. data/spec/models/spree/order/totals_spec.rb +0 -26
  325. data/spec/models/spree/order/validations_spec.rb +0 -17
  326. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  327. data/spec/models/spree/order_capturing_spec.rb +0 -16
  328. data/spec/models/spree/order_contents_spec.rb +0 -362
  329. data/spec/models/spree/order_inventory_spec.rb +0 -285
  330. data/spec/models/spree/order_merger_spec.rb +0 -162
  331. data/spec/models/spree/order_mutex_spec.rb +0 -89
  332. data/spec/models/spree/order_promotion_spec.rb +0 -33
  333. data/spec/models/spree/order_shipping_spec.rb +0 -247
  334. data/spec/models/spree/order_spec.rb +0 -1687
  335. data/spec/models/spree/order_taxation_spec.rb +0 -128
  336. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  337. data/spec/models/spree/order_updater_spec.rb +0 -556
  338. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  339. data/spec/models/spree/payment_create_spec.rb +0 -195
  340. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  341. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  342. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  343. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  344. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  345. data/spec/models/spree/payment_method_spec.rb +0 -408
  346. data/spec/models/spree/payment_spec.rb +0 -1270
  347. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  348. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  349. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  350. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  351. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  352. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  353. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  354. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  355. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  356. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  357. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  358. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  359. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  360. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  361. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  362. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  363. data/spec/models/spree/preference_spec.rb +0 -79
  364. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  365. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  366. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  367. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  368. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  369. data/spec/models/spree/preferences/store_spec.rb +0 -40
  370. data/spec/models/spree/price_spec.rb +0 -150
  371. data/spec/models/spree/product/scopes_spec.rb +0 -164
  372. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  373. data/spec/models/spree/product_filter_spec.rb +0 -28
  374. data/spec/models/spree/product_property_spec.rb +0 -20
  375. data/spec/models/spree/product_spec.rb +0 -584
  376. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  377. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  378. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  379. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  380. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  381. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  382. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  383. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  384. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  385. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  386. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  387. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  388. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -226
  389. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  390. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  391. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  392. data/spec/models/spree/promotion_action_spec.rb +0 -44
  393. data/spec/models/spree/promotion_category_spec.rb +0 -19
  394. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  395. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  396. data/spec/models/spree/promotion_code_spec.rb +0 -206
  397. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  398. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  399. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  400. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  401. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  402. data/spec/models/spree/promotion_spec.rb +0 -945
  403. data/spec/models/spree/refund_spec.rb +0 -200
  404. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  405. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  406. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  407. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  408. data/spec/models/spree/reimbursement_spec.rb +0 -278
  409. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  410. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  411. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  412. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  413. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  414. data/spec/models/spree/return_authorization_spec.rb +0 -226
  415. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  416. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  417. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  418. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  419. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  420. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  421. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  422. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  423. data/spec/models/spree/return_item_spec.rb +0 -785
  424. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  425. data/spec/models/spree/shipment_spec.rb +0 -914
  426. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  427. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  428. data/spec/models/spree/shipping_method_spec.rb +0 -292
  429. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  430. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  431. data/spec/models/spree/state_spec.rb +0 -43
  432. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  433. data/spec/models/spree/stock/availability_spec.rb +0 -143
  434. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  435. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  436. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  437. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  438. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  439. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  440. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  441. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  442. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  443. data/spec/models/spree/stock/package_spec.rb +0 -182
  444. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  445. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  446. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  447. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  448. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  449. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  450. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  451. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  452. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  453. data/spec/models/spree/stock_item_spec.rb +0 -348
  454. data/spec/models/spree/stock_location_spec.rb +0 -288
  455. data/spec/models/spree/stock_movement_spec.rb +0 -58
  456. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  457. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  458. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  459. data/spec/models/spree/store_credit_spec.rb +0 -900
  460. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  461. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  462. data/spec/models/spree/store_spec.rb +0 -156
  463. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  464. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  465. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  466. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  467. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  468. data/spec/models/spree/tax_category_spec.rb +0 -50
  469. data/spec/models/spree/tax_rate_spec.rb +0 -317
  470. data/spec/models/spree/taxon_spec.rb +0 -197
  471. data/spec/models/spree/taxonomy_spec.rb +0 -15
  472. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  473. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  474. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  475. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  476. data/spec/models/spree/user_spec.rb +0 -247
  477. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  478. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  479. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  480. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  481. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  482. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  483. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  484. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  485. data/spec/models/spree/variant_spec.rb +0 -862
  486. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  487. data/spec/models/spree/wallet_spec.rb +0 -155
  488. data/spec/models/spree/zone_spec.rb +0 -248
  489. data/spec/rails_helper.rb +0 -46
  490. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  491. data/spec/spec_helper.rb +0 -36
  492. data/spec/support/big_decimal.rb +0 -7
  493. data/spec/support/concerns/default_price.rb +0 -44
  494. data/spec/support/concerns/payment_source.rb +0 -66
  495. data/spec/support/concerns/working_factories.rb +0 -15
  496. data/spec/support/dummy_ability.rb +0 -7
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  RSpec.shared_examples_for 'access granted' do
4
- it 'should allow read' do
5
- expect(ability).to be_able_to(:read, resource, token) if token
6
- expect(ability).to be_able_to(:read, resource) unless token
4
+ it 'should allow show' do
5
+ expect(ability).to be_able_to(:show, resource, token) if token
6
+ expect(ability).to be_able_to(:show, resource) unless token
7
7
  end
8
8
 
9
9
  it 'should allow create' do
@@ -18,8 +18,8 @@ RSpec.shared_examples_for 'access granted' do
18
18
  end
19
19
 
20
20
  RSpec.shared_examples_for 'access denied' do
21
- it 'should not allow read' do
22
- expect(ability).to_not be_able_to(:read, resource)
21
+ it 'should not allow show' do
22
+ expect(ability).to_not be_able_to(:show, resource)
23
23
  end
24
24
 
25
25
  it 'should not allow create' do
@@ -61,8 +61,8 @@ RSpec.shared_examples_for 'create only' do
61
61
  expect(ability).to be_able_to(:create, resource)
62
62
  end
63
63
 
64
- it 'should not allow read' do
65
- expect(ability).to_not be_able_to(:read, resource)
64
+ it 'should not allow show' do
65
+ expect(ability).to_not be_able_to(:show, resource)
66
66
  end
67
67
 
68
68
  it 'should not allow update' do
@@ -93,8 +93,8 @@ RSpec.shared_examples_for 'update only' do
93
93
  expect(ability).to_not be_able_to(:create, resource)
94
94
  end
95
95
 
96
- it 'should not allow read' do
97
- expect(ability).to_not be_able_to(:read, resource)
96
+ it 'should not allow show' do
97
+ expect(ability).to_not be_able_to(:show, resource)
98
98
  end
99
99
 
100
100
  it 'should allow update' do
@@ -65,4 +65,5 @@ RSpec.configure do |config|
65
65
  config.extend Spree::TestingSupport::AuthorizationHelpers::Controller, type: :controller
66
66
  config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :feature
67
67
  config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :request
68
+ config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :system
68
69
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module TestingSupport
5
+ module BlacklistUrls
6
+ def setup_url_blacklist(browser)
7
+ if browser.respond_to?(:url_blacklist)
8
+ browser.url_blacklist = ['http://fonts.googleapis.com']
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ RSpec.configure do |config|
16
+ config.before(:each, type: :feature) do
17
+ setup_url_blacklist(page.driver.browser)
18
+ end
19
+
20
+ config.before(:each, type: :system) do
21
+ setup_url_blacklist(page.driver.browser)
22
+ end
23
+ end
@@ -162,3 +162,6 @@ CapybaraExt = ActiveSupport::Deprecation::DeprecatedConstantProxy.new('CapybaraE
162
162
  RSpec.configure do |c|
163
163
  c.include Spree::TestingSupport::CapybaraExt
164
164
  end
165
+
166
+ # A workaround for https://github.com/rspec/rspec-rails/issues/1897
167
+ Capybara.server = :puma, { Silent: true }
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- unless defined?(Spree::InstallGenerator)
4
- require 'generators/spree/install/install_generator'
3
+ unless defined?(Solidus::InstallGenerator)
4
+ require 'generators/solidus/install/install_generator'
5
5
  end
6
6
 
7
7
  require 'generators/spree/dummy/dummy_generator'
@@ -14,7 +14,7 @@ namespace :common do
14
14
  ENV["RAILS_ENV"] = 'test'
15
15
 
16
16
  Spree::DummyGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", "--quiet"]
17
- Spree::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", "--auto-accept", "--migrate=false", "--seed=false", "--sample=false", "--quiet", "--user_class=#{args[:user_class]}"]
17
+ Solidus::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", "--auto-accept", "--with-authentication=false", "--payment-method=none", "--migrate=false", "--seed=false", "--sample=false", "--quiet", "--user_class=#{args[:user_class]}"]
18
18
 
19
19
  puts "Setting up dummy database..."
20
20
 
@@ -12,14 +12,10 @@ Rails.env = 'test'
12
12
 
13
13
  require 'solidus_core'
14
14
 
15
- RAILS_52_OR_ABOVE = Gem::Version.new(Rails.version) >= Gem::Version.new('5.2')
16
- RAILS_6_OR_ABOVE = Gem::Version.new(Rails.version) >= Gem::Version.new('6.0')
15
+ RAILS_6_OR_ABOVE = Rails.gem_version >= Gem::Version.new('6.0')
17
16
 
18
17
  # @private
19
18
  class ApplicationController < ActionController::Base
20
- unless RAILS_52_OR_ABOVE
21
- protect_from_forgery with: :exception
22
- end
23
19
  end
24
20
 
25
21
  # @private
@@ -48,25 +44,36 @@ module DummyApp
48
44
  end
49
45
 
50
46
  class Application < ::Rails::Application
51
- config.eager_load = false
52
- config.cache_classes = true
53
- config.cache_store = :memory_store
54
- config.serve_static_assets = true
55
- config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
56
- config.whiny_nils = true
57
- config.consider_all_requests_local = true
47
+ config.eager_load = false
48
+ config.cache_classes = true
49
+ config.cache_store = :memory_store
50
+ config.serve_static_assets = true
51
+ config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
52
+ config.whiny_nils = true
53
+ config.consider_all_requests_local = true
58
54
  config.action_controller.allow_forgery_protection = true
59
- config.action_controller.perform_caching = false
60
- config.action_dispatch.show_exceptions = false
61
- config.active_support.deprecation = :stderr
62
- config.action_mailer.delivery_method = :test
63
- config.active_support.deprecation = :stderr
64
- config.secret_key_base = 'SECRET_TOKEN'
65
-
66
- if RAILS_52_OR_ABOVE
67
- config.action_controller.default_protect_from_forgery = true
68
- unless RAILS_6_OR_ABOVE
69
- config.active_record.sqlite3.represent_boolean_as_integer = true
55
+ config.action_controller.default_protect_from_forgery = true
56
+ config.action_controller.perform_caching = false
57
+ config.action_dispatch.show_exceptions = false
58
+ config.active_support.deprecation = :stderr
59
+ config.action_mailer.delivery_method = :test
60
+ config.active_support.deprecation = :stderr
61
+ config.secret_key_base = 'SECRET_TOKEN'
62
+
63
+ config.action_mailer.delivery_job = "ActionMailer::MailDeliveryJob" if RAILS_6_OR_ABOVE
64
+ config.active_record.sqlite3.represent_boolean_as_integer = true unless RAILS_6_OR_ABOVE
65
+
66
+ config.storage_path = Rails.root.join('tmp', 'storage')
67
+
68
+ if ENV['ENABLE_ACTIVE_STORAGE']
69
+ initializer 'solidus.active_storage' do
70
+ config.active_storage.service_configurations = {
71
+ test: {
72
+ service: 'Disk',
73
+ root: config.storage_path
74
+ }
75
+ }
76
+ config.active_storage.service = :test
70
77
  end
71
78
  end
72
79
 
@@ -107,7 +114,21 @@ end
107
114
 
108
115
  Spree.user_class = 'Spree::LegacyUser'
109
116
  Spree.config do |config|
117
+ config.use_legacy_address_state_validator = false
110
118
  config.mails_from = "store@example.com"
119
+ config.raise_with_invalid_currency = false
120
+ config.redirect_back_on_unauthorized = true
121
+ config.run_order_validations_on_order_updater = true
122
+ config.use_combined_first_and_last_name_in_address = true
123
+ config.use_legacy_order_state_machine = false
124
+ config.use_custom_cancancan_actions = false
125
+ config.consider_actionless_promotion_active = false
126
+ config.use_legacy_store_credit_reimbursement_category_name = false
127
+
128
+ if ENV['ENABLE_ACTIVE_STORAGE']
129
+ config.image_attachment_module = 'Spree::Image::ActiveStorageAttachment'
130
+ config.taxon_attachment_module = 'Spree::Taxon::ActiveStorageAttachment'
131
+ end
111
132
  end
112
133
 
113
134
  # Raise on deprecation warnings
@@ -15,12 +15,8 @@ module DummyApp
15
15
 
16
16
  def needs_migration?
17
17
  return true if !database_exists?
18
- if ActiveRecord::Base.connection.respond_to?(:migration_context)
19
- # Rails >= 5.2
20
- ActiveRecord::Base.connection.migration_context.needs_migration?
21
- else
22
- ActiveRecord::Migrator.needs_migration?
23
- end
18
+
19
+ ActiveRecord::Base.connection.migration_context.needs_migration?
24
20
  end
25
21
 
26
22
  def auto_migrate
@@ -31,6 +27,9 @@ module DummyApp
31
27
  ActiveRecord::Base.remove_connection
32
28
 
33
29
  sh 'rake db:reset VERBOSE=false'
30
+ if ENV['ENABLE_ACTIVE_STORAGE']
31
+ sh 'rake active_storage:install db:migrate VERBOSE=false'
32
+ end
34
33
 
35
34
  # We have a brand new database, so we must re-establish our connection
36
35
  ActiveRecord::Base.establish_connection
@@ -43,10 +43,8 @@ namespace :db do
43
43
  [path],
44
44
  ActiveRecord::SchemaMigration
45
45
  ).migrate
46
- elsif Rails.gem_version >= Gem::Version.new('5.2.0')
47
- ActiveRecord::MigrationContext.new([path]).migrate
48
46
  else
49
- ActiveRecord::Migrator.migrate(path)
47
+ ActiveRecord::MigrationContext.new([path]).migrate
50
48
  end
51
49
  end
52
50
 
@@ -11,8 +11,7 @@ FactoryBot.define do
11
11
  state_code { 'AL' }
12
12
  end
13
13
 
14
- firstname { 'John' }
15
- lastname { nil }
14
+ name { 'John Von Doe' }
16
15
  company { 'Company' }
17
16
  address1 { '10 Lovely Street' }
18
17
  address2 { 'Northwest' }
@@ -2,6 +2,6 @@
2
2
 
3
3
  FactoryBot.define do
4
4
  factory :image, class: 'Spree::Image' do
5
- attachment { File.new(Spree::Core::Engine.root + 'spec/fixtures/thinking-cat.jpg') }
5
+ attachment { Spree::Core::Engine.root.join('lib', 'spree', 'testing_support', 'fixtures', 'blank.jpg').open }
6
6
  end
7
7
  end
@@ -16,6 +16,12 @@ FactoryBot.define do
16
16
  end
17
17
  end
18
18
 
19
+ trait :with_action do
20
+ after(:create) do |promotion, _evaluator|
21
+ promotion.actions << Spree::Promotion::Actions::CreateAdjustment.new
22
+ end
23
+ end
24
+
19
25
  trait :with_line_item_adjustment do
20
26
  transient do
21
27
  adjustment_rate { 10 }
@@ -13,6 +13,7 @@ FactoryBot.define do
13
13
 
14
14
  amount { 100.00 }
15
15
  transaction_id { generate(:refund_transaction_id) }
16
+ perform_after_create { false }
16
17
  payment do
17
18
  association(:payment, state: 'completed', amount: payment_amount)
18
19
  end
@@ -15,7 +15,7 @@ FactoryBot.define do
15
15
  if reimbursement.return_items.empty?
16
16
  reimbursement.return_items = reimbursement.customer_return.return_items
17
17
  end
18
- reimbursement.total = reimbursement.return_items.map { |ri| ri.amount }.sum
18
+ reimbursement.total = reimbursement.return_items.sum(&:amount)
19
19
  end
20
20
  end
21
21
  end
@@ -6,7 +6,6 @@ require 'spree/testing_support/factories/return_authorization_factory'
6
6
 
7
7
  FactoryBot.define do
8
8
  factory :return_item, class: 'Spree::ReturnItem' do
9
- skip_customer_return_processing { true }
10
9
  association(:inventory_unit, factory: :inventory_unit, state: :shipped)
11
10
  association(:return_reason, factory: :return_reason)
12
11
  return_authorization do |_return_item|
@@ -3,5 +3,13 @@
3
3
  FactoryBot.define do
4
4
  factory :store_credit_category, class: 'Spree::StoreCreditCategory' do
5
5
  name { "Exchange" }
6
+
7
+ trait :reimbursement do
8
+ name { Spree::StoreCreditCategory::REIMBURSEMENT }
9
+ end
10
+
11
+ trait :gift_card do
12
+ name { Spree::StoreCreditCategory::GIFT_CARD }
13
+ end
6
14
  end
7
15
  end
@@ -8,6 +8,7 @@ FactoryBot.define do
8
8
  store_credit
9
9
  amount { 100.00 }
10
10
  authorization_code { "#{store_credit.id}-SC-20140602164814476128" }
11
+ action { Spree::StoreCredit::AUTHORIZE_ACTION }
11
12
 
12
13
  factory :store_credit_auth_event, class: 'Spree::StoreCreditEvent' do
13
14
  action { Spree::StoreCredit::AUTHORIZE_ACTION }
@@ -2,6 +2,8 @@
2
2
 
3
3
  FactoryBot.define do
4
4
  factory :store_credit_reason, class: 'Spree::StoreCreditReason' do
5
- name { "Input error" }
5
+ sequence :name do |n|
6
+ "Input error #{n}"
7
+ end
6
8
  end
7
9
  end
@@ -7,5 +7,9 @@ FactoryBot.define do
7
7
  name { 'Ruby on Rails' }
8
8
  taxonomy
9
9
  parent_id { nil }
10
+
11
+ trait :with_icon do
12
+ icon { Spree::Core::Engine.root.join('lib', 'spree', 'testing_support', 'fixtures', 'blank.jpg').open }
13
+ end
10
14
  end
11
15
  end
@@ -17,7 +17,10 @@ FactoryBot.define do
17
17
  end
18
18
 
19
19
  factory :admin_user do
20
- spree_roles { [Spree::Role.find_by(name: 'admin') || create(:role, name: 'admin')] }
20
+ after(:create) do |user, _|
21
+ admin_role = Spree::Role.find_by(name: 'admin') || create(:role, name: 'admin')
22
+ user.spree_roles << admin_role
23
+ end
21
24
  end
22
25
 
23
26
  factory :user_with_addresses do |_u|
@@ -5,7 +5,7 @@ require 'spree/testing_support/factories/country_factory'
5
5
 
6
6
  FactoryBot.define do
7
7
  factory :global_zone, class: 'Spree::Zone' do
8
- name { 'GlobalZone' }
8
+ initialize_with { Spree::Zone.find_or_initialize_by(name: 'GlobalZone') }
9
9
  zone_members do |proxy|
10
10
  zone = proxy.instance_eval { @instance }
11
11
  Spree::Country.all.map do |c|
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module TestingSupport
5
+ module JobHelpers
6
+ def perform_enqueued_jobs
7
+ adapter = ActiveJob::Base.queue_adapter
8
+
9
+ old = adapter.perform_enqueued_jobs
10
+ old_at = adapter.perform_enqueued_at_jobs
11
+
12
+ begin
13
+ adapter.perform_enqueued_jobs = true
14
+ adapter.perform_enqueued_at_jobs = true
15
+
16
+ yield
17
+ ensure
18
+ adapter.perform_enqueued_jobs = old
19
+ adapter.perform_enqueued_at_jobs = old_at
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.configure do |config|
4
+ config.when_first_matching_example_defined(type: :feature) do
5
+ config.before :suite do
6
+ Rails.application.precompiled_assets
7
+ end
8
+ end
9
+
10
+ config.when_first_matching_example_defined(type: :system) do
11
+ config.before :suite do
12
+ Rails.application.precompiled_assets
13
+ end
14
+ end
15
+ end
@@ -14,7 +14,9 @@ module Spree
14
14
  #
15
15
  # @deprecated
16
16
  def reset_spree_preferences(&config_block)
17
- Spree::Config.instance_variables.each { |iv| Spree::Config.remove_instance_variable(iv) }
17
+ Spree::Config.instance_variables.
18
+ reject { |iv| iv == :@events_configuration }.
19
+ each { |iv| Spree::Config.remove_instance_variable(iv) }
18
20
  Spree::Config.preference_store = Spree::Config.default_preferences
19
21
 
20
22
  if defined?(Railties)
@@ -10,7 +10,7 @@ RSpec.shared_examples 'a gallery' do
10
10
  include_context 'has multiple images'
11
11
 
12
12
  it 'has the associated images' do
13
- expect(subject.map { |picture| picture.id }).
13
+ expect(subject.map(&:id)).
14
14
  to match_array([first_image.id, second_image.id])
15
15
  end
16
16
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module TestingSupport
5
+ module Translations
6
+ def check_missing_translations(page, example)
7
+ missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
8
+ if missing_translations.any?
9
+ puts "Found missing translations: #{missing_translations.inspect}"
10
+ puts "In spec: #{example.location}"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+
17
+ RSpec.configure do |config|
18
+ config.after(:each, type: :feature) do |example|
19
+ check_missing_translations(page, example)
20
+ end
21
+
22
+ config.after(:each, type: :system) do |example|
23
+ check_missing_translations(page, example)
24
+ end
25
+ end