solidus_core 2.10.2 → 2.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) 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/engine.rb +39 -2
  109. data/lib/spree/core/importer/order.rb +24 -10
  110. data/lib/spree/core/permalinks.rb +1 -3
  111. data/lib/spree/core/product_filters.rb +6 -5
  112. data/lib/spree/core/state_machines.rb +20 -1
  113. data/lib/spree/core/state_machines/order.rb +249 -0
  114. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  115. data/lib/spree/core/version.rb +1 -1
  116. data/lib/spree/encryptor.rb +25 -0
  117. data/lib/spree/event.rb +40 -7
  118. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  119. data/lib/spree/event/configuration.rb +11 -6
  120. data/lib/spree/event/subscriber.rb +38 -18
  121. data/lib/spree/event/subscriber_registry.rb +92 -0
  122. data/lib/spree/i18n.rb +1 -1
  123. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  124. data/lib/spree/paranoia_deprecations.rb +32 -12
  125. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  126. data/lib/spree/permission_sets/default_customer.rb +16 -16
  127. data/lib/spree/permission_sets/order_display.rb +11 -11
  128. data/lib/spree/permission_sets/order_management.rb +1 -1
  129. data/lib/spree/permission_sets/product_display.rb +9 -9
  130. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  131. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  132. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  133. data/lib/spree/permission_sets/stock_display.rb +2 -2
  134. data/lib/spree/permission_sets/stock_management.rb +1 -1
  135. data/lib/spree/permission_sets/user_display.rb +3 -3
  136. data/lib/spree/permission_sets/user_management.rb +4 -3
  137. data/lib/spree/permitted_attributes.rb +4 -3
  138. data/lib/spree/preferences/preferable.rb +4 -3
  139. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  140. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  141. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  142. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  143. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  144. data/lib/spree/testing_support/common_rake.rb +3 -3
  145. data/lib/spree/testing_support/dummy_app.rb +44 -23
  146. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  147. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  148. data/lib/spree/testing_support/factories/address_factory.rb +1 -2
  149. data/lib/spree/testing_support/factories/image_factory.rb +1 -1
  150. data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
  151. data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
  152. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  153. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
  154. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
  155. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
  156. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
  157. data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
  158. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  159. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  160. data/lib/spree/testing_support/job_helpers.rb +24 -0
  161. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  162. data/lib/spree/testing_support/preferences.rb +3 -1
  163. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  164. data/lib/spree/testing_support/translations.rb +25 -0
  165. data/solidus_core.gemspec +8 -5
  166. metadata +99 -377
  167. data/script/rails +0 -10
  168. data/spec/fixtures/thinking-cat.jpg +0 -0
  169. data/spec/helpers/base_helper_spec.rb +0 -168
  170. data/spec/helpers/products_helper_spec.rb +0 -202
  171. data/spec/helpers/taxons_helper_spec.rb +0 -43
  172. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  173. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  174. data/spec/lib/i18n_spec.rb +0 -97
  175. data/spec/lib/search/base_spec.rb +0 -91
  176. data/spec/lib/search/variant_spec.rb +0 -115
  177. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  178. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  179. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  180. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  181. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  182. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  183. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  184. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  185. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  186. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  187. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  188. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  189. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  190. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  191. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  192. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  193. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  194. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  195. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  196. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  197. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  198. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  199. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  201. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  202. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  204. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  205. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  206. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  207. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  208. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  209. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  210. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  212. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  214. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  215. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  216. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  217. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  218. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  219. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  221. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  222. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  223. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  224. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  226. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  227. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  228. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  229. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  230. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  231. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  232. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  233. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  234. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  235. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  237. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  238. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  240. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  241. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  242. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  243. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  244. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  245. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  246. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  247. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  248. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  249. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  250. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  251. data/spec/lib/spree/core/version_spec.rb +0 -19
  252. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  253. data/spec/lib/spree/event_spec.rb +0 -130
  254. data/spec/lib/spree/localized_number_spec.rb +0 -45
  255. data/spec/lib/spree/migrations_spec.rb +0 -32
  256. data/spec/lib/spree/money_spec.rb +0 -298
  257. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  258. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  259. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  260. data/spec/lib/tasks/dummy_task.rake +0 -12
  261. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  262. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  263. data/spec/mailers/carton_mailer_spec.rb +0 -44
  264. data/spec/mailers/order_mailer_spec.rb +0 -117
  265. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  266. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  267. data/spec/mailers/test_mailer_spec.rb +0 -13
  268. data/spec/models/spree/ability_spec.rb +0 -279
  269. data/spec/models/spree/address_spec.rb +0 -399
  270. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  271. data/spec/models/spree/adjustment_spec.rb +0 -339
  272. data/spec/models/spree/asset_spec.rb +0 -25
  273. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  274. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  275. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  276. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  277. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  278. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  279. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  280. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  281. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  282. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  283. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  284. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  285. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  286. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  287. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  288. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  289. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  290. data/spec/models/spree/calculator_spec.rb +0 -43
  291. data/spec/models/spree/carton_spec.rb +0 -145
  292. data/spec/models/spree/classification_spec.rb +0 -126
  293. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  294. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  295. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  296. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  297. data/spec/models/spree/country_spec.rb +0 -154
  298. data/spec/models/spree/credit_card_spec.rb +0 -373
  299. data/spec/models/spree/customer_return_spec.rb +0 -294
  300. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  301. data/spec/models/spree/exchange_spec.rb +0 -76
  302. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  303. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  304. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  305. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  306. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  307. data/spec/models/spree/gateway_spec.rb +0 -14
  308. data/spec/models/spree/image_spec.rb +0 -25
  309. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  310. data/spec/models/spree/line_item_spec.rb +0 -240
  311. data/spec/models/spree/option_type_spec.rb +0 -16
  312. data/spec/models/spree/option_value_spec.rb +0 -52
  313. data/spec/models/spree/order/address_spec.rb +0 -52
  314. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  315. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  316. data/spec/models/spree/order/checkout_spec.rb +0 -740
  317. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  318. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  319. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  320. data/spec/models/spree/order/payment_spec.rb +0 -280
  321. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  322. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  323. data/spec/models/spree/order/totals_spec.rb +0 -26
  324. data/spec/models/spree/order/validations_spec.rb +0 -17
  325. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  326. data/spec/models/spree/order_capturing_spec.rb +0 -16
  327. data/spec/models/spree/order_contents_spec.rb +0 -362
  328. data/spec/models/spree/order_inventory_spec.rb +0 -285
  329. data/spec/models/spree/order_merger_spec.rb +0 -162
  330. data/spec/models/spree/order_mutex_spec.rb +0 -89
  331. data/spec/models/spree/order_promotion_spec.rb +0 -33
  332. data/spec/models/spree/order_shipping_spec.rb +0 -247
  333. data/spec/models/spree/order_spec.rb +0 -1687
  334. data/spec/models/spree/order_taxation_spec.rb +0 -128
  335. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  336. data/spec/models/spree/order_updater_spec.rb +0 -556
  337. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  338. data/spec/models/spree/payment_create_spec.rb +0 -195
  339. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  340. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  341. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  342. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  343. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  344. data/spec/models/spree/payment_method_spec.rb +0 -408
  345. data/spec/models/spree/payment_spec.rb +0 -1270
  346. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  347. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  348. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  349. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  350. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  351. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  352. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  353. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  354. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  355. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  356. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  357. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  358. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  359. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  360. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  361. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  362. data/spec/models/spree/preference_spec.rb +0 -79
  363. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  364. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  365. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  366. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  367. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  368. data/spec/models/spree/preferences/store_spec.rb +0 -40
  369. data/spec/models/spree/price_spec.rb +0 -150
  370. data/spec/models/spree/product/scopes_spec.rb +0 -164
  371. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  372. data/spec/models/spree/product_filter_spec.rb +0 -28
  373. data/spec/models/spree/product_property_spec.rb +0 -20
  374. data/spec/models/spree/product_spec.rb +0 -584
  375. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  376. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  377. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  378. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  379. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  380. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  381. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  382. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  383. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  384. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  385. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  386. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  387. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  388. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  389. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  390. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  391. data/spec/models/spree/promotion_action_spec.rb +0 -44
  392. data/spec/models/spree/promotion_category_spec.rb +0 -19
  393. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  394. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  395. data/spec/models/spree/promotion_code_spec.rb +0 -206
  396. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  397. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  398. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  399. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  400. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  401. data/spec/models/spree/promotion_spec.rb +0 -945
  402. data/spec/models/spree/refund_spec.rb +0 -200
  403. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  404. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  405. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  406. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  407. data/spec/models/spree/reimbursement_spec.rb +0 -278
  408. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  409. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  410. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  411. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  412. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  413. data/spec/models/spree/return_authorization_spec.rb +0 -226
  414. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  415. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  416. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  417. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  418. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  419. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  420. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  421. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  422. data/spec/models/spree/return_item_spec.rb +0 -785
  423. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  424. data/spec/models/spree/shipment_spec.rb +0 -914
  425. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  426. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  427. data/spec/models/spree/shipping_method_spec.rb +0 -292
  428. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  429. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  430. data/spec/models/spree/state_spec.rb +0 -43
  431. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  432. data/spec/models/spree/stock/availability_spec.rb +0 -143
  433. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  434. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  435. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  436. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  437. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  438. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  439. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  440. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  441. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  442. data/spec/models/spree/stock/package_spec.rb +0 -182
  443. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  444. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  445. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  446. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  447. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  448. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  449. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  450. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  451. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  452. data/spec/models/spree/stock_item_spec.rb +0 -348
  453. data/spec/models/spree/stock_location_spec.rb +0 -288
  454. data/spec/models/spree/stock_movement_spec.rb +0 -58
  455. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  456. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  457. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  458. data/spec/models/spree/store_credit_spec.rb +0 -900
  459. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  460. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  461. data/spec/models/spree/store_spec.rb +0 -156
  462. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  463. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  464. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  465. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  466. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  467. data/spec/models/spree/tax_category_spec.rb +0 -50
  468. data/spec/models/spree/tax_rate_spec.rb +0 -317
  469. data/spec/models/spree/taxon_spec.rb +0 -197
  470. data/spec/models/spree/taxonomy_spec.rb +0 -15
  471. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  472. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  473. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  474. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  475. data/spec/models/spree/user_spec.rb +0 -247
  476. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  477. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  478. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  479. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  480. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  481. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  482. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  483. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  484. data/spec/models/spree/variant_spec.rb +0 -862
  485. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  486. data/spec/models/spree/wallet_spec.rb +0 -155
  487. data/spec/models/spree/zone_spec.rb +0 -248
  488. data/spec/rails_helper.rb +0 -46
  489. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  490. data/spec/spec_helper.rb +0 -36
  491. data/spec/support/big_decimal.rb +0 -7
  492. data/spec/support/concerns/default_price.rb +0 -44
  493. data/spec/support/concerns/payment_source.rb +0 -66
  494. data/spec/support/concerns/working_factories.rb +0 -15
  495. data/spec/support/dummy_ability.rb +0 -7
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This is a dummy task used for generic rake task testing
4
-
5
- task dummy_task: :environment do
6
- DummyTaskRunner.run
7
- end
8
-
9
- class DummyTaskRunner
10
- def self.run
11
- end
12
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe 'dummy_task' do
6
- include_context(
7
- 'rake',
8
- task_name: 'dummy_task',
9
- task_path: Spree::Core::Engine.root.join('spec/lib/tasks/dummy_task.rake'),
10
- )
11
-
12
- it 'calls the dummy task exactly once' do
13
- expect(DummyTaskRunner).to receive(:run).once
14
- task.invoke
15
- end
16
-
17
- # This tests:
18
- # 1) that tasks get reenabled between examples
19
- # 2) that tasks aren't loaded in the wrong way, causing them to execute
20
- # an extra time for every example that's defined.
21
- # We need at least two specs to trigger the error conditions and spec order is
22
- # random so we just create the same spec twice. We could probably combine this
23
- # with the generic spec above but this seems clearer.
24
- 2.times do |i|
25
- it "still calls the dummy task exactly once when more than one example is defined - #{i}" do
26
- expect(DummyTaskRunner).to receive(:run).once
27
- task.invoke
28
- end
29
- end
30
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe 'solidus:migrations:migrate_shipping_rate_taxes' do
6
- describe 'up' do
7
- include_context(
8
- 'rake',
9
- task_path: Spree::Core::Engine.root.join('lib/tasks/migrations/migrate_shipping_rate_taxes.rake'),
10
- task_name: 'solidus:migrations:migrate_shipping_rate_taxes:up',
11
- )
12
-
13
- it 'runs' do
14
- Spree::Deprecation.silence do
15
- expect { task.invoke }.to output(
16
- "Adding persisted tax notes to historic shipping rates ... Success.\n"
17
- ).to_stdout
18
- end
19
- end
20
- end
21
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::CartonMailer do
6
- let(:carton) { create(:carton) }
7
- let(:order) { carton.orders.first }
8
-
9
- # Regression test for https://github.com/spree/spree/issues/2196
10
- it "doesn't include out of stock in the email body" do
11
- shipment_email = Spree::CartonMailer.shipped_email(order: order, carton: carton)
12
- expect(shipment_email.parts.first.body).not_to include(%{Out of Stock})
13
- expect(shipment_email.parts.first.body).to include(%{Your order has been shipped})
14
- expect(shipment_email.subject).to eq "#{order.store.name} Shipment Notification ##{order.number}"
15
- end
16
-
17
- context "with resend option" do
18
- subject do
19
- Spree::CartonMailer.shipped_email(order: order, carton: carton, resend: true).subject
20
- end
21
- it { is_expected.to match /^\[RESEND\] / }
22
- end
23
-
24
- context "emails must be translatable" do
25
- context "shipped_email" do
26
- context "pt-BR locale" do
27
- before do
28
- pt_br_shipped_email = { spree: { shipment_mailer: { shipped_email: { dear_customer: 'Caro Cliente,' } } } }
29
- I18n.backend.store_translations :'pt-BR', pt_br_shipped_email
30
- I18n.locale = :'pt-BR'
31
- end
32
-
33
- after do
34
- I18n.locale = I18n.default_locale
35
- end
36
-
37
- specify do
38
- shipped_email = Spree::CartonMailer.shipped_email(order: order, carton: carton)
39
- expect(shipped_email.parts.first.body).to include("Caro Cliente,")
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,117 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::OrderMailer, type: :mailer do
6
- let(:order) do
7
- order = create(:order)
8
- product = stub_model(Spree::Product, name: %{The "BEST" product})
9
- variant = stub_model(Spree::Variant, product: product)
10
- price = stub_model(Spree::Price, variant: variant, amount: 5.00)
11
- store = FactoryBot.build :store, mail_from_address: "store@example.com"
12
- line_item = stub_model(Spree::LineItem, variant: variant, order: order, quantity: 1, price: 4.99)
13
- allow(variant).to receive_messages(default_price: price)
14
- allow(order).to receive_messages(line_items: [line_item])
15
- allow(order).to receive(:store).and_return(store)
16
- order
17
- end
18
-
19
- it "uses the order's store for the from address" do
20
- message = Spree::OrderMailer.confirm_email(order)
21
- expect(message.from).to eq ["store@example.com"]
22
- end
23
-
24
- it "doesn't aggressively escape double quotes in confirmation body" do
25
- confirmation_email = Spree::OrderMailer.confirm_email(order)
26
- expect(confirmation_email.body).not_to include(""")
27
- end
28
-
29
- context "only shows eligible adjustments in emails" do
30
- before do
31
- create(
32
- :adjustment,
33
- adjustable: order,
34
- order: order,
35
- eligible: true,
36
- label: 'Eligible Adjustment'
37
- )
38
-
39
- create(
40
- :adjustment,
41
- adjustable: order,
42
- order: order,
43
- eligible: false,
44
- label: 'Ineligible Adjustment'
45
- )
46
- end
47
-
48
- let!(:confirmation_email) { Spree::OrderMailer.confirm_email(order) }
49
- let!(:cancel_email) { Spree::OrderMailer.cancel_email(order) }
50
-
51
- specify do
52
- expect(confirmation_email.body).not_to include("Ineligible Adjustment")
53
- end
54
-
55
- specify do
56
- expect(cancel_email.body).not_to include("Ineligible Adjustment")
57
- end
58
- end
59
-
60
- context "displays unit costs from line item" do
61
- # Regression test for https://github.com/spree/spree/issues/2772
62
-
63
- # Tests mailer view spree/order_mailer/confirm_email.text.erb
64
- specify do
65
- confirmation_email = Spree::OrderMailer.confirm_email(order)
66
- expect(confirmation_email.parts.first.body).to include("4.99")
67
- expect(confirmation_email.parts.first.body).to_not include("5.00")
68
- end
69
-
70
- # Tests mailer view spree/order_mailer/cancel_email.text.erb
71
- specify do
72
- cancel_email = Spree::OrderMailer.cancel_email(order)
73
- expect(cancel_email.parts.first.body).to include("4.99")
74
- expect(cancel_email.parts.first.body).to_not include("5.00")
75
- end
76
- end
77
-
78
- context "emails must be translatable" do
79
- context "pt-BR locale" do
80
- before do
81
- I18n.enforce_available_locales = false
82
- pt_br_confirm_mail = { spree: { order_mailer: { confirm_email: { dear_customer: 'Caro Cliente,' } } } }
83
- pt_br_cancel_mail = { spree: { order_mailer: { cancel_email: { order_summary_canceled: 'Resumo da Pedido [CANCELADA]' } } } }
84
- I18n.backend.store_translations :'pt-BR', pt_br_confirm_mail
85
- I18n.backend.store_translations :'pt-BR', pt_br_cancel_mail
86
- I18n.locale = :'pt-BR'
87
- end
88
-
89
- after do
90
- I18n.locale = I18n.default_locale
91
- I18n.enforce_available_locales = true
92
- end
93
-
94
- context "confirm_email" do
95
- specify do
96
- confirmation_email = Spree::OrderMailer.confirm_email(order)
97
- expect(confirmation_email.parts.first.body).to include("Caro Cliente,")
98
- end
99
- end
100
-
101
- context "cancel_email" do
102
- specify do
103
- cancel_email = Spree::OrderMailer.cancel_email(order)
104
- expect(cancel_email.parts.first.body).to include("Resumo da Pedido [CANCELADA]")
105
- end
106
- end
107
- end
108
- end
109
-
110
- context "with preference :send_core_emails set to false" do
111
- it "sends no email" do
112
- stub_spree_preferences(send_core_emails: false)
113
- message = Spree::OrderMailer.confirm_email(order)
114
- expect(message.body).to be_blank
115
- end
116
- end
117
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
- RSpec.describe Spree::PromotionCodeBatchMailer, type: :mailer do
5
- let(:promotion) { create(:promotion, name: "Promotion Test") }
6
- let(:promotion_code_batch) do
7
- Spree::PromotionCodeBatch.create!(
8
- promotion_id: promotion.id,
9
- base_code: "test",
10
- number_of_codes: 10,
11
- email: "test@email.com"
12
- )
13
- end
14
-
15
- describe "#promotion_code_batch_finished" do
16
- subject { described_class.promotion_code_batch_finished(promotion_code_batch) }
17
-
18
- it "sends the email to the email attached to the promotion code batch " do
19
- expect(subject.to).to eq([promotion_code_batch.email])
20
- end
21
-
22
- it "contains the number of codes created" do
23
- expect(subject.body).to include("All 10 codes have been created")
24
- end
25
-
26
- it "contains the name of the promotion" do
27
- expect(subject.body).to include(promotion.name)
28
- end
29
- end
30
-
31
- describe "#promotion_code_batch_errored" do
32
- before { promotion_code_batch.update(error: "Test error") }
33
- subject { described_class.promotion_code_batch_errored(promotion_code_batch) }
34
-
35
- it "sends the email to the email attached to the promotion code batch " do
36
- expect(subject.to).to eq([promotion_code_batch.email])
37
- end
38
-
39
- it "contains the error" do
40
- expect(subject.body).to include("Test error")
41
- end
42
-
43
- it "contains the name of the promotion" do
44
- expect(subject.body).to include(promotion.name)
45
- end
46
- end
47
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::ReimbursementMailer, type: :mailer do
6
- let(:reimbursement) { create(:reimbursement) }
7
-
8
- it "accepts a reimbursement id as an alternative to a Reimbursement object" do
9
- expect(Spree::Reimbursement).to receive(:find).with(reimbursement.id).and_return(reimbursement)
10
-
11
- Spree::ReimbursementMailer.reimbursement_email(reimbursement.id).body
12
- end
13
-
14
- context "emails must be translatable" do
15
- context "reimbursement_email" do
16
- context "pt-BR locale" do
17
- before do
18
- I18n.enforce_available_locales = false
19
- pt_br_shipped_email = { spree: { reimbursement_mailer: { reimbursement_email: { dear_customer: 'Caro Cliente,' } } } }
20
- I18n.backend.store_translations :'pt-BR', pt_br_shipped_email
21
- I18n.locale = :'pt-BR'
22
- end
23
-
24
- after do
25
- I18n.locale = I18n.default_locale
26
- I18n.enforce_available_locales = true
27
- end
28
-
29
- specify do
30
- reimbursement_email = Spree::ReimbursementMailer.reimbursement_email(reimbursement)
31
- expect(reimbursement_email.parts.first.body).to include("Caro Cliente,")
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::TestMailer, type: :mailer do
6
- let(:user) { create(:user) }
7
-
8
- it "confirm_email accepts a user id as an alternative to a User object" do
9
- Spree::Deprecation.silence do
10
- Spree::TestMailer.test_email('test@example.com')
11
- end
12
- end
13
- end
@@ -1,279 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
- require 'cancan'
5
- require 'cancan/matchers'
6
- require 'spree/testing_support/ability_helpers'
7
-
8
- Spree::Deprecation.silence do
9
- require 'spree/testing_support/bar_ability'
10
- end
11
-
12
- # Fake ability for testing registration of additional abilities
13
- class FooAbility
14
- include CanCan::Ability
15
-
16
- def initialize(_user)
17
- # allow anyone to perform index on Order
18
- can :index, Spree::Order
19
- # allow anyone to update an Order with id of 1
20
- can :update, Spree::Order do |order|
21
- order.id == 1
22
- end
23
- end
24
- end
25
-
26
- RSpec.describe Spree::Ability, type: :model do
27
- let(:user) { build(:user) }
28
- let(:ability) { Spree::Ability.new(user) }
29
- let(:token) { nil }
30
-
31
- after(:each) {
32
- Spree::Ability.abilities = Set.new
33
- }
34
-
35
- describe "#initialize" do
36
- subject { Spree::Ability.new(user) }
37
-
38
- it "activates permissions from the role configuration" do
39
- expect(Spree::Config.roles).to receive(:activate_permissions!).
40
- once
41
-
42
- subject
43
- end
44
- end
45
-
46
- context 'register_ability' do
47
- it 'should add the ability to the list of abilties' do
48
- Spree::Ability.register_ability(FooAbility)
49
- expect(Spree::Ability.new(user).abilities).not_to be_empty
50
- end
51
-
52
- it 'should apply the registered abilities permissions' do
53
- Spree::Ability.register_ability(FooAbility)
54
- expect(Spree::Ability.new(user).can?(:update, mock_model(Spree::Order, user: nil, id: 1))).to be true
55
- end
56
- end
57
-
58
- context 'for general resource' do
59
- let(:resource) { Object.new }
60
-
61
- context 'with admin user' do
62
- let(:user) { create :admin_user }
63
- it_should_behave_like 'access granted'
64
- it_should_behave_like 'index allowed'
65
- end
66
-
67
- context 'with customer' do
68
- it_should_behave_like 'access denied'
69
- it_should_behave_like 'no index allowed'
70
- end
71
- end
72
-
73
- context 'for admin protected resources' do
74
- let(:resource) { Object.new }
75
- let(:resource_shipment) { Spree::Shipment.new }
76
- let(:resource_product) { Spree::Product.new }
77
- let(:resource_user) { create :user }
78
- let(:resource_order) { Spree::Order.new }
79
- let(:fakedispatch_user) { Spree.user_class.create }
80
- let(:fakedispatch_ability) { Spree::Ability.new(fakedispatch_user) }
81
-
82
- context 'with admin user' do
83
- it 'should be able to admin' do
84
- user.spree_roles << Spree::Role.find_or_create_by(name: 'admin')
85
- expect(ability).to be_able_to :admin, resource
86
- expect(ability).to be_able_to :index, resource_order
87
- expect(ability).to be_able_to :show, resource_product
88
- expect(ability).to be_able_to :create, resource_user
89
- end
90
- end
91
-
92
- context 'with fakedispatch user' do
93
- it 'should be able to admin on the order and shipment pages' do
94
- user.spree_roles << Spree::Role.find_or_create_by(name: 'bar')
95
-
96
- Spree::Ability.register_ability(BarAbility)
97
-
98
- expect(ability).not_to be_able_to :admin, resource
99
-
100
- expect(ability).to be_able_to :admin, resource_order
101
- expect(ability).to be_able_to :index, resource_order
102
- expect(ability).not_to be_able_to :update, resource_order
103
- # ability.should_not be_able_to :create, resource_order # Fails
104
-
105
- expect(ability).to be_able_to :admin, resource_shipment
106
- expect(ability).to be_able_to :index, resource_shipment
107
- expect(ability).to be_able_to :create, resource_shipment
108
-
109
- expect(ability).not_to be_able_to :admin, resource_product
110
- expect(ability).not_to be_able_to :update, resource_product
111
- # ability.should_not be_able_to :show, resource_product # Fails
112
-
113
- expect(ability).not_to be_able_to :admin, resource_user
114
- expect(ability).not_to be_able_to :update, resource_user
115
- expect(ability).to be_able_to :update, user
116
- # ability.should_not be_able_to :create, resource_user # Fails
117
- # It can create new users if is has access to the :admin, User!!
118
-
119
- # TODO: change the Ability class so only users and customers get the extra premissions?
120
-
121
- Spree::Ability.remove_ability(BarAbility)
122
- end
123
- end
124
-
125
- context 'with customer' do
126
- it 'should not be able to admin' do
127
- expect(ability).not_to be_able_to :admin, resource
128
- expect(ability).not_to be_able_to :admin, resource_order
129
- expect(ability).not_to be_able_to :admin, resource_product
130
- expect(ability).not_to be_able_to :admin, resource_user
131
- end
132
- end
133
- end
134
-
135
- context 'as Guest User' do
136
- context 'for Country' do
137
- let(:resource) { Spree::Country.new }
138
- context 'requested by any user' do
139
- it_should_behave_like 'read only'
140
- end
141
- end
142
-
143
- context 'for OptionType' do
144
- let(:resource) { Spree::OptionType.new }
145
- context 'requested by any user' do
146
- it_should_behave_like 'read only'
147
- end
148
- end
149
-
150
- context 'for OptionValue' do
151
- let(:resource) { Spree::OptionType.new }
152
- context 'requested by any user' do
153
- it_should_behave_like 'read only'
154
- end
155
- end
156
-
157
- context 'for Order' do
158
- let(:resource) { Spree::Order.new }
159
-
160
- context 'requested by same user' do
161
- before(:each) { resource.user = user }
162
- it_should_behave_like 'access granted'
163
- it_should_behave_like 'no index allowed'
164
- end
165
-
166
- context 'requested by other user' do
167
- before(:each) { resource.user = Spree.user_class.new }
168
- it_should_behave_like 'create only'
169
- end
170
-
171
- context 'requested with proper token' do
172
- let(:token) { 'TOKEN123' }
173
- before(:each) { allow(resource).to receive_messages guest_token: 'TOKEN123' }
174
- it_should_behave_like 'access granted'
175
- it_should_behave_like 'no index allowed'
176
- end
177
-
178
- context 'requested with inproper token' do
179
- let(:token) { 'FAIL' }
180
- before(:each) { allow(resource).to receive_messages guest_token: 'TOKEN123' }
181
- it_should_behave_like 'create only'
182
- end
183
- end
184
-
185
- context 'for Product' do
186
- let(:resource) { Spree::Product.new }
187
- context 'requested by any user' do
188
- it_should_behave_like 'read only'
189
- end
190
- end
191
-
192
- context 'for ProductProperty' do
193
- let(:resource) { Spree::Product.new }
194
- context 'requested by any user' do
195
- it_should_behave_like 'read only'
196
- end
197
- end
198
-
199
- context 'for Property' do
200
- let(:resource) { Spree::Product.new }
201
- context 'requested by any user' do
202
- it_should_behave_like 'read only'
203
- end
204
- end
205
-
206
- context 'for State' do
207
- let(:resource) { Spree::State.new }
208
- context 'requested by any user' do
209
- it_should_behave_like 'read only'
210
- end
211
- end
212
-
213
- context 'for Stock Item' do
214
- let(:resource) { Spree::StockItem.new }
215
- context 'active stock location' do
216
- before { resource.build_stock_location(active: true) }
217
- it_should_behave_like 'read only'
218
- end
219
-
220
- context 'inactive stock location' do
221
- before { resource.build_stock_location(active: false) }
222
- it_should_behave_like 'access denied'
223
- end
224
- end
225
-
226
- context 'for Stock Location' do
227
- let(:resource) { Spree::StockLocation.new }
228
- context 'active' do
229
- before { resource.active = true }
230
- it_should_behave_like 'read only'
231
- end
232
-
233
- context 'inactive' do
234
- before { resource.active = false }
235
- it_should_behave_like 'access denied'
236
- end
237
- end
238
-
239
- context 'for Taxons' do
240
- let(:resource) { Spree::Taxon.new }
241
- context 'requested by any user' do
242
- it_should_behave_like 'read only'
243
- end
244
- end
245
-
246
- context 'for Taxonomy' do
247
- let(:resource) { Spree::Taxonomy.new }
248
- context 'requested by any user' do
249
- it_should_behave_like 'read only'
250
- end
251
- end
252
-
253
- context 'for User' do
254
- context 'requested by same user' do
255
- let(:resource) { user }
256
- it_should_behave_like 'access granted'
257
- it_should_behave_like 'no index allowed'
258
- end
259
- context 'requested by other user' do
260
- let(:resource) { Spree.user_class.create }
261
- it_should_behave_like 'create only'
262
- end
263
- end
264
-
265
- context 'for Variant' do
266
- let(:resource) { Spree::Variant.new }
267
- context 'requested by any user' do
268
- it_should_behave_like 'read only'
269
- end
270
- end
271
-
272
- context 'for Zone' do
273
- let(:resource) { Spree::Zone.new }
274
- context 'requested by any user' do
275
- it_should_behave_like 'read only'
276
- end
277
- end
278
- end
279
- end