solidus_core 2.10.0 → 2.11.0

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/attachment.rb +69 -0
  7. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  8. data/app/models/concerns/spree/active_storage_adapter.rb +116 -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/name.rb +49 -0
  15. data/app/models/spree/address/state_validator.rb +71 -0
  16. data/app/models/spree/address.rb +94 -17
  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/checkout.rb +1 -0
  31. data/app/models/spree/order.rb +91 -20
  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/cancellation.rb +3 -3
  37. data/app/models/spree/payment/processing.rb +54 -30
  38. data/app/models/spree/payment.rb +3 -3
  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/scopes.rb +10 -5
  43. data/app/models/spree/product.rb +19 -14
  44. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  45. data/app/models/spree/promotion.rb +18 -7
  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 +54 -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/exchange_variant_eligibility/same_option_value.rb +1 -1
  57. data/app/models/spree/return_item.rb +21 -10
  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/active_storage_attachment.rb +19 -0
  80. data/app/models/spree/taxon.rb +1 -1
  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/install/install_generator.rb +7 -189
  97. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  98. data/lib/spree/app_configuration.rb +117 -51
  99. data/lib/spree/awesome_nested_set_override.rb +44 -0
  100. data/lib/spree/core/controller_helpers/auth.rb +17 -4
  101. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  102. data/lib/spree/core/controller_helpers/order.rb +8 -7
  103. data/lib/spree/core/controller_helpers/strong_parameters.rb +21 -7
  104. data/lib/spree/core/engine.rb +39 -2
  105. data/lib/spree/core/importer/order.rb +26 -11
  106. data/lib/spree/core/permalinks.rb +1 -3
  107. data/lib/spree/core/product_filters.rb +6 -5
  108. data/lib/spree/core/state_machines/order.rb +249 -0
  109. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  110. data/lib/spree/core/state_machines.rb +20 -1
  111. data/lib/spree/core/version.rb +1 -1
  112. data/lib/spree/core.rb +5 -11
  113. data/lib/spree/encryptor.rb +25 -0
  114. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  115. data/lib/spree/event/configuration.rb +11 -6
  116. data/lib/spree/event/subscriber.rb +38 -18
  117. data/lib/spree/event/subscriber_registry.rb +92 -0
  118. data/lib/spree/event.rb +40 -7
  119. data/lib/spree/i18n.rb +1 -1
  120. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  121. data/lib/spree/paranoia_deprecations.rb +32 -12
  122. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  123. data/lib/spree/permission_sets/default_customer.rb +16 -16
  124. data/lib/spree/permission_sets/order_display.rb +11 -11
  125. data/lib/spree/permission_sets/order_management.rb +1 -1
  126. data/lib/spree/permission_sets/product_display.rb +9 -9
  127. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  128. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  129. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  130. data/lib/spree/permission_sets/stock_display.rb +2 -2
  131. data/lib/spree/permission_sets/stock_management.rb +1 -1
  132. data/lib/spree/permission_sets/user_display.rb +3 -3
  133. data/lib/spree/permission_sets/user_management.rb +4 -3
  134. data/lib/spree/permitted_attributes.rb +79 -9
  135. data/lib/spree/preferences/preferable.rb +4 -3
  136. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  137. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  138. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  139. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  140. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  141. data/lib/spree/testing_support/common_rake.rb +3 -3
  142. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  143. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  144. data/lib/spree/testing_support/dummy_app.rb +44 -23
  145. data/lib/spree/testing_support/factories/address_factory.rb +1 -2
  146. data/lib/spree/testing_support/factories/image_factory.rb +1 -1
  147. data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
  148. data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
  149. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  150. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
  151. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
  152. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
  153. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
  154. data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
  155. data/lib/spree/testing_support/factories/user_factory.rb +4 -1
  156. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  157. data/lib/spree/testing_support/job_helpers.rb +24 -0
  158. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  159. data/lib/spree/testing_support/preferences.rb +3 -1
  160. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  161. data/lib/spree/testing_support/translations.rb +25 -0
  162. data/solidus_core.gemspec +8 -5
  163. metadata +81 -359
  164. data/script/rails +0 -10
  165. data/spec/fixtures/thinking-cat.jpg +0 -0
  166. data/spec/helpers/base_helper_spec.rb +0 -168
  167. data/spec/helpers/products_helper_spec.rb +0 -202
  168. data/spec/helpers/taxons_helper_spec.rb +0 -43
  169. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  170. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  171. data/spec/lib/i18n_spec.rb +0 -97
  172. data/spec/lib/search/base_spec.rb +0 -91
  173. data/spec/lib/search/variant_spec.rb +0 -115
  174. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  175. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  176. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  177. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  178. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  179. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  180. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  181. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  182. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -41
  183. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  184. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  185. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  186. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  187. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  188. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  189. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  190. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  191. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  192. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  193. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  194. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  195. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  196. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  197. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  198. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  199. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  201. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  202. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  204. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  205. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  206. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  207. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  208. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  209. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  210. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  212. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  214. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  215. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  216. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  217. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  218. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  219. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  221. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  222. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  223. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  224. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  226. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  227. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  228. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  229. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  230. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  231. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  232. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  233. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  234. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  235. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  237. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  238. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  240. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  241. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  242. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  243. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  244. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  245. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  246. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  247. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  248. data/spec/lib/spree/core/version_spec.rb +0 -19
  249. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  250. data/spec/lib/spree/event_spec.rb +0 -130
  251. data/spec/lib/spree/localized_number_spec.rb +0 -45
  252. data/spec/lib/spree/migrations_spec.rb +0 -32
  253. data/spec/lib/spree/money_spec.rb +0 -298
  254. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  255. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  256. data/spec/lib/tasks/dummy_task.rake +0 -12
  257. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  258. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  259. data/spec/mailers/carton_mailer_spec.rb +0 -44
  260. data/spec/mailers/order_mailer_spec.rb +0 -117
  261. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  262. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  263. data/spec/mailers/test_mailer_spec.rb +0 -13
  264. data/spec/models/spree/ability_spec.rb +0 -279
  265. data/spec/models/spree/address_spec.rb +0 -399
  266. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  267. data/spec/models/spree/adjustment_spec.rb +0 -339
  268. data/spec/models/spree/asset_spec.rb +0 -25
  269. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  270. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  271. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  272. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  273. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  274. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  275. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  276. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  277. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  278. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  279. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  280. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  281. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  282. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  283. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  284. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  285. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  286. data/spec/models/spree/calculator_spec.rb +0 -43
  287. data/spec/models/spree/carton_spec.rb +0 -145
  288. data/spec/models/spree/classification_spec.rb +0 -126
  289. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  290. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  291. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  292. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  293. data/spec/models/spree/country_spec.rb +0 -154
  294. data/spec/models/spree/credit_card_spec.rb +0 -373
  295. data/spec/models/spree/customer_return_spec.rb +0 -294
  296. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  297. data/spec/models/spree/exchange_spec.rb +0 -76
  298. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  299. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  300. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  301. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  302. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  303. data/spec/models/spree/gateway_spec.rb +0 -14
  304. data/spec/models/spree/image_spec.rb +0 -25
  305. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  306. data/spec/models/spree/line_item_spec.rb +0 -240
  307. data/spec/models/spree/option_type_spec.rb +0 -16
  308. data/spec/models/spree/option_value_spec.rb +0 -52
  309. data/spec/models/spree/order/address_spec.rb +0 -52
  310. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  311. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  312. data/spec/models/spree/order/checkout_spec.rb +0 -740
  313. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  314. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  315. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  316. data/spec/models/spree/order/payment_spec.rb +0 -280
  317. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  318. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  319. data/spec/models/spree/order/totals_spec.rb +0 -26
  320. data/spec/models/spree/order/validations_spec.rb +0 -17
  321. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  322. data/spec/models/spree/order_capturing_spec.rb +0 -16
  323. data/spec/models/spree/order_contents_spec.rb +0 -362
  324. data/spec/models/spree/order_inventory_spec.rb +0 -285
  325. data/spec/models/spree/order_merger_spec.rb +0 -162
  326. data/spec/models/spree/order_mutex_spec.rb +0 -89
  327. data/spec/models/spree/order_promotion_spec.rb +0 -33
  328. data/spec/models/spree/order_shipping_spec.rb +0 -247
  329. data/spec/models/spree/order_spec.rb +0 -1687
  330. data/spec/models/spree/order_taxation_spec.rb +0 -128
  331. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  332. data/spec/models/spree/order_updater_spec.rb +0 -556
  333. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  334. data/spec/models/spree/payment_create_spec.rb +0 -195
  335. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  336. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  337. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  338. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  339. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  340. data/spec/models/spree/payment_method_spec.rb +0 -408
  341. data/spec/models/spree/payment_spec.rb +0 -1270
  342. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  343. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  344. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  345. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  346. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  347. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  348. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  349. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  350. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  351. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  352. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  353. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  354. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  355. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  356. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  357. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  358. data/spec/models/spree/preference_spec.rb +0 -79
  359. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  360. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  361. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  362. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  363. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  364. data/spec/models/spree/preferences/store_spec.rb +0 -40
  365. data/spec/models/spree/price_spec.rb +0 -150
  366. data/spec/models/spree/product/scopes_spec.rb +0 -164
  367. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  368. data/spec/models/spree/product_filter_spec.rb +0 -28
  369. data/spec/models/spree/product_property_spec.rb +0 -20
  370. data/spec/models/spree/product_spec.rb +0 -584
  371. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  372. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  373. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  374. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  375. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  376. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  377. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  378. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  379. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  380. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  381. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  382. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  383. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -226
  384. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  385. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  386. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  387. data/spec/models/spree/promotion_action_spec.rb +0 -44
  388. data/spec/models/spree/promotion_category_spec.rb +0 -19
  389. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  390. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  391. data/spec/models/spree/promotion_code_spec.rb +0 -206
  392. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  393. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  394. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  395. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  396. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  397. data/spec/models/spree/promotion_spec.rb +0 -945
  398. data/spec/models/spree/refund_spec.rb +0 -200
  399. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  400. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  401. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  402. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  403. data/spec/models/spree/reimbursement_spec.rb +0 -278
  404. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  405. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  406. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  407. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  408. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  409. data/spec/models/spree/return_authorization_spec.rb +0 -226
  410. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  411. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  412. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  413. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  414. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  415. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  416. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  417. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  418. data/spec/models/spree/return_item_spec.rb +0 -785
  419. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  420. data/spec/models/spree/shipment_spec.rb +0 -914
  421. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  422. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  423. data/spec/models/spree/shipping_method_spec.rb +0 -292
  424. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  425. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  426. data/spec/models/spree/state_spec.rb +0 -43
  427. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  428. data/spec/models/spree/stock/availability_spec.rb +0 -143
  429. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  430. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  431. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  432. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  433. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  434. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  435. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  436. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  437. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  438. data/spec/models/spree/stock/package_spec.rb +0 -182
  439. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  440. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  441. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  442. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  443. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  444. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  445. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  446. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  447. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  448. data/spec/models/spree/stock_item_spec.rb +0 -348
  449. data/spec/models/spree/stock_location_spec.rb +0 -288
  450. data/spec/models/spree/stock_movement_spec.rb +0 -58
  451. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  452. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  453. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  454. data/spec/models/spree/store_credit_spec.rb +0 -900
  455. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  456. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  457. data/spec/models/spree/store_spec.rb +0 -156
  458. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  459. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  460. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  461. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  462. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  463. data/spec/models/spree/tax_category_spec.rb +0 -50
  464. data/spec/models/spree/tax_rate_spec.rb +0 -317
  465. data/spec/models/spree/taxon_spec.rb +0 -197
  466. data/spec/models/spree/taxonomy_spec.rb +0 -15
  467. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  468. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  469. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  470. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  471. data/spec/models/spree/user_spec.rb +0 -247
  472. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  473. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  474. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  475. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  476. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  477. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  478. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  479. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  480. data/spec/models/spree/variant_spec.rb +0 -862
  481. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  482. data/spec/models/spree/wallet_spec.rb +0 -155
  483. data/spec/models/spree/zone_spec.rb +0 -248
  484. data/spec/rails_helper.rb +0 -46
  485. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  486. data/spec/spec_helper.rb +0 -36
  487. data/spec/support/big_decimal.rb +0 -7
  488. data/spec/support/concerns/default_price.rb +0 -44
  489. data/spec/support/concerns/payment_source.rb +0 -66
  490. data/spec/support/concerns/working_factories.rb +0 -15
  491. data/spec/support/dummy_ability.rb +0 -7
  492. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  493. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  494. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  495. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
@@ -1,195 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- module Spree
6
- RSpec.describe PaymentCreate do
7
- let(:user) { nil }
8
- let(:order) { create :order, user: user }
9
- let(:request_env) { {} }
10
- let(:payment_create) { described_class.new(order, attributes, request_env: request_env) }
11
- let(:payment_method) { create(:payment_method) }
12
- let(:new_payment) { payment_create.build }
13
-
14
- context 'empty attributes' do
15
- let(:attributes){ {} }
16
- it "builds a new empty payment" do
17
- expect(new_payment).to be_a Spree::Payment
18
- expect(new_payment.order).to eq order
19
- expect(new_payment.source).to be_nil
20
- end
21
-
22
- it "builds the payment in order.payments" do
23
- expect(order.payments).to eq [new_payment]
24
- end
25
- end
26
-
27
- context 'with a new source' do
28
- let(:attributes) do
29
- {
30
- amount: 100,
31
- payment_method: payment_method,
32
- source_attributes: {
33
- expiry: "01 / 99",
34
- number: '1234567890123',
35
- verification_value: '123',
36
- name: 'Foo Bar'
37
- }
38
- }
39
- end
40
-
41
- it "should build the payment's source" do
42
- expect(new_payment).to be_valid
43
- expect(new_payment.source).not_to be_nil
44
- expect(new_payment.source.user_id).to eq order.user_id
45
- expect(new_payment.source.payment_method_id).to eq payment_method.id
46
- end
47
-
48
- it "doesn't modify passed-in hash" do
49
- original = attributes.dup
50
- new_payment
51
- expect(original).to eq(attributes)
52
- end
53
-
54
- context "when payment source not valid" do
55
- let(:attributes) do
56
- {
57
- amount: 100,
58
- payment_method: payment_method,
59
- source_attributes: { expiry: "1 / 12" }
60
- }
61
- end
62
- it "errors when payment source not valid" do
63
- expect(new_payment).not_to be_valid
64
- expect(new_payment).not_to be_persisted
65
- expect(new_payment.source).not_to be_persisted
66
- expect(new_payment.source).not_to be_valid
67
- expect(new_payment.source.errors[:number]).to be_present
68
- expect(new_payment.source.errors[:verification_value].size).to be_present
69
- end
70
- end
71
- end
72
-
73
- context 'with the deprecated existing_card_id attribute' do
74
- let(:user) { create(:user) }
75
- let!(:credit_card) { create(:credit_card, user: order.user) }
76
-
77
- let(:attributes) do
78
- {
79
- source_attributes: {
80
- existing_card_id: credit_card.id,
81
- verification_value: '321'
82
- }
83
- }
84
- end
85
-
86
- around do |example|
87
- Spree::Deprecation.silence { example.run }
88
- end
89
-
90
- it 'sets the existing card as the source for the new payment' do
91
- expect(new_payment.source).to eq(credit_card)
92
- end
93
-
94
- it 'sets the payment payment_method to that of the credit card' do
95
- expect(new_payment.payment_method_id).to eq(credit_card.payment_method_id)
96
- end
97
-
98
- it 'sets the verification_value on the credit card' do
99
- expect(new_payment.source.verification_value).to eq('321')
100
- end
101
-
102
- context 'with request_env' do
103
- let(:request_env){ { 'USER_AGENT' => 'Firefox' } }
104
- it 'sets the request_env on the payment' do
105
- expect(new_payment.request_env).to eq({ 'USER_AGENT' => 'Firefox' })
106
- end
107
- end
108
-
109
- context 'the credit card belongs to a different user' do
110
- let(:other_user) { create(:user) }
111
- before { credit_card.update!(user: other_user) }
112
- it 'errors' do
113
- expect { new_payment }.to raise_error(ActiveRecord::RecordNotFound)
114
- end
115
- end
116
-
117
- context 'the credit card has no user' do
118
- before { credit_card.update!(user_id: nil) }
119
- it 'errors' do
120
- expect { new_payment }.to raise_error(ActiveRecord::RecordNotFound)
121
- end
122
- end
123
-
124
- context 'the order has no user' do
125
- before { order.update!(user_id: nil) }
126
- it 'errors' do
127
- expect { new_payment }.to raise_error(ActiveRecord::RecordNotFound)
128
- end
129
- end
130
-
131
- context 'the order and the credit card have no user' do
132
- before do
133
- order.update!(user_id: nil)
134
- credit_card.update!(user_id: nil)
135
- end
136
- it 'errors' do
137
- expect { new_payment }.to raise_error(ActiveRecord::RecordNotFound)
138
- end
139
- end
140
- end
141
-
142
- context "with strong params" do
143
- let(:valid_attributes) do
144
- {
145
- amount: 100,
146
- payment_method: payment_method,
147
- source_attributes: {
148
- expiry: "01 / 99",
149
- number: '1234567890123',
150
- verification_value: '123',
151
- name: 'Foo Bar'
152
- }
153
- }
154
- end
155
-
156
- context "unpermitted" do
157
- let(:attributes) { ActionController::Parameters.new(valid_attributes) }
158
-
159
- it "raises an exception" do
160
- expect {
161
- new_payment
162
- }.to raise_exception(ActionController::UnfilteredParameters)
163
- end
164
- end
165
-
166
- context "partially permitted" do
167
- let(:attributes) do
168
- ActionController::Parameters.new(valid_attributes).permit(:amount)
169
- end
170
-
171
- it "only uses permitted attributes" do
172
- expect(new_payment).to have_attributes(
173
- amount: 100, # permitted
174
- payment_method: nil, # unpermitted
175
- source: nil # unpermitted
176
- )
177
- end
178
- end
179
-
180
- context "all permitted" do
181
- let(:attributes) do
182
- ActionController::Parameters.new(valid_attributes).permit!
183
- end
184
-
185
- it "creates a payment with all attributes" do
186
- expect(new_payment).to have_attributes(
187
- amount: 100,
188
- payment_method: payment_method,
189
- source: kind_of(CreditCard)
190
- )
191
- end
192
- end
193
- end
194
- end
195
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- module Spree
6
- RSpec.describe PaymentMethod::BogusCreditCard, type: :model do
7
- let(:bogus) { create(:credit_card_payment_method) }
8
- let!(:cc) { create(:credit_card, payment_method: bogus, gateway_customer_profile_id: "BGS-RERTERT") }
9
- end
10
- end
@@ -1,80 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PaymentMethod::Check do
6
- let(:order) { create(:order) }
7
- subject { described_class.new }
8
-
9
- context "#can_capture?" do
10
- let(:payment) { create(:payment, order: order, state: state) }
11
-
12
- context "with payment in state checkout" do
13
- let(:state) { "checkout" }
14
-
15
- it "returns true" do
16
- expect(subject.can_capture?(payment)).to be_truthy
17
- end
18
- end
19
-
20
- context "with payment in state pending" do
21
- let(:state) { "pending" }
22
-
23
- it "returns true" do
24
- expect(subject.can_capture?(payment)).to be_truthy
25
- end
26
- end
27
-
28
- context "with payment in state failed" do
29
- let(:state) { "failed" }
30
-
31
- it "returns false" do
32
- expect(subject.can_capture?(payment)).to be_falsy
33
- end
34
- end
35
- end
36
-
37
- context "#can_void?" do
38
- let(:payment) { create(:payment, order: order, state: state) }
39
-
40
- context "with payment in state checkout" do
41
- let(:state) { "checkout" }
42
-
43
- it "returns true" do
44
- expect(subject.can_void?(payment)).to be_truthy
45
- end
46
- end
47
-
48
- context "with payment in state void" do
49
- let(:state) { "void" }
50
-
51
- it "returns false" do
52
- expect(subject.can_void?(payment)).to be_falsy
53
- end
54
- end
55
- end
56
-
57
- context "#capture" do
58
- it "succeeds" do
59
- expect(subject.capture).to be_success
60
- end
61
- end
62
-
63
- context "#try_void" do
64
- it "succeeds" do
65
- expect(subject.try_void).to be_success
66
- end
67
- end
68
-
69
- context "#void" do
70
- it "succeeds" do
71
- expect(subject.void).to be_success
72
- end
73
- end
74
-
75
- context "#credit" do
76
- it "succeeds" do
77
- expect(subject.credit).to be_success
78
- end
79
- end
80
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PaymentMethod::CreditCard, type: :model do
6
- context "fetching payment sources" do
7
- let(:store) { create :store }
8
- let(:user) { create :user }
9
- let(:order) { Spree::Order.create(user: user, completed_at: completed_at, store: store) }
10
-
11
- let(:payment_method) { create(:credit_card_payment_method) }
12
-
13
- let(:cc) do
14
- create(:credit_card,
15
- payment_method: payment_method,
16
- gateway_customer_profile_id: "EFWE",
17
- user: cc_user)
18
- end
19
-
20
- let(:payment) do
21
- create(:payment, order: order, source: cc, payment_method: payment_method)
22
- end
23
-
24
- context 'order is not complete and credit card user is nil' do
25
- let(:cc_user) { nil }
26
- let(:completed_at) { nil }
27
-
28
- it "finds no credit cards associated to the order" do
29
- expect(payment_method.reusable_sources(payment.order)).to be_empty
30
- end
31
- end
32
-
33
- context 'order is complete but credit card user is nil' do
34
- let(:cc_user) { nil }
35
- let(:completed_at) { Date.yesterday }
36
-
37
- it "finds credit cards associated on a order completed" do
38
- expect(payment_method.reusable_sources(payment.order)).to eq [cc]
39
- end
40
- end
41
-
42
- context 'order is not complete but credit card has user' do
43
- let(:cc_user) { user }
44
- let(:completed_at) { nil }
45
- before do
46
- cc_user.wallet.add(cc)
47
- end
48
- it "finds credit cards associated to the user" do
49
- expect(payment_method.reusable_sources(payment.order)).to eq [cc]
50
- end
51
- end
52
- end
53
-
54
- context 'using preference_source' do
55
- let(:klass){ Spree::PaymentMethod::BogusCreditCard }
56
- before do
57
- Spree::Config.static_model_preferences.add(klass, 'test_preference_source', server: 'bar')
58
- end
59
- after do
60
- Spree::Config.static_model_preferences.for_class(klass).clear
61
- end
62
- let(:payment_method){ create(:credit_card_payment_method, preference_source: 'test_preference_source') }
63
-
64
- it "reads static preferences" do
65
- expect(payment_method.options).to eq({ server: "bar" })
66
- end
67
- end
68
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PaymentMethod::SimpleBogusCreditCard, type: :model do
6
- subject { Spree::PaymentMethod::SimpleBogusCreditCard.new }
7
-
8
- # regression test for https://github.com/spree/spree/issues/3824
9
- describe "#capture" do
10
- it "returns success with the right response code" do
11
- response = subject.capture(123, '12345', {})
12
- expect(response.message).to include("success")
13
- end
14
-
15
- it "returns failure with the wrong response code" do
16
- response = subject.capture(123, 'wrong', {})
17
- expect(response.message).to include("failure")
18
- end
19
- end
20
- end
@@ -1,325 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PaymentMethod::StoreCredit do
6
- let(:order) { create(:order) }
7
- let(:payment) { create(:payment, order: order) }
8
- let(:gateway_options) { payment.gateway_options }
9
-
10
- context "#authorize" do
11
- subject do
12
- Spree::PaymentMethod::StoreCredit.new.authorize(auth_amount, store_credit, gateway_options)
13
- end
14
-
15
- let(:auth_amount) { store_credit.amount_remaining * 100 }
16
- let(:store_credit) { create(:store_credit) }
17
- let(:gateway_options) { super().merge(originator: originator) }
18
- let(:originator) { nil }
19
-
20
- context 'without an invalid store credit' do
21
- let(:store_credit) { nil }
22
- let(:auth_amount) { 10 }
23
-
24
- it "declines an unknown store credit" do
25
- expect(subject.success?).to be false
26
- expect(subject.message).to include I18n.t('spree.store_credit.unable_to_find')
27
- end
28
- end
29
-
30
- context 'with insuffient funds' do
31
- let(:auth_amount) { (store_credit.amount_remaining * 100) + 1 }
32
-
33
- it "declines a store credit" do
34
- expect(subject.success?).to be false
35
- expect(subject.message).to include I18n.t('spree.store_credit.insufficient_funds')
36
- end
37
- end
38
-
39
- context 'when the currency does not match the order currency' do
40
- let(:store_credit) { create(:store_credit, currency: 'AUD') }
41
-
42
- it "declines the credit" do
43
- expect(subject.success?).to be false
44
- expect(subject.message).to include I18n.t('spree.store_credit.currency_mismatch')
45
- end
46
- end
47
-
48
- context 'with a valid request' do
49
- it "authorizes a valid store credit" do
50
- expect(subject.success?).to be true
51
- expect(subject.authorization).not_to be_nil
52
- end
53
-
54
- context 'with an originator' do
55
- let(:originator) { double('originator') }
56
-
57
- it 'passes the originator' do
58
- expect_any_instance_of(Spree::StoreCredit).to receive(:authorize)
59
- .with(anything, anything, action_originator: originator)
60
- subject
61
- end
62
- end
63
- end
64
- end
65
-
66
- context "#capture" do
67
- subject do
68
- Spree::PaymentMethod::StoreCredit.new.capture(capture_amount, auth_code, gateway_options)
69
- end
70
-
71
- let(:capture_amount) { 10_00 }
72
- let(:auth_code) { auth_event.authorization_code }
73
- let(:gateway_options) { super().merge(originator: originator) }
74
-
75
- let(:authorized_amount) { capture_amount / 100.0 }
76
- let(:auth_event) { create(:store_credit_auth_event, store_credit: store_credit, amount: authorized_amount) }
77
- let(:store_credit) { create(:store_credit, amount_authorized: authorized_amount) }
78
- let(:originator) { nil }
79
-
80
- context 'with an invalid auth code' do
81
- let(:auth_code) { -1 }
82
-
83
- it "declines an unknown store credit" do
84
- expect(subject.success?).to be false
85
- expect(subject.message).to include I18n.t('spree.store_credit.unable_to_find')
86
- end
87
- end
88
-
89
- context 'when unable to authorize the amount' do
90
- let(:authorized_amount) { (capture_amount - 1) / 100 }
91
-
92
- before do
93
- allow_any_instance_of(Spree::StoreCredit).to receive_messages(authorize: true)
94
- end
95
-
96
- it "declines a store credit" do
97
- expect(subject.success?).to be false
98
- expect(subject.message).to include I18n.t('spree.store_credit.insufficient_authorized_amount')
99
- end
100
- end
101
-
102
- context 'when the currency does not match the order currency' do
103
- let(:store_credit) { create(:store_credit, currency: 'AUD', amount_authorized: authorized_amount) }
104
-
105
- it "declines the credit" do
106
- expect(subject.success?).to be false
107
- expect(subject.message).to include I18n.t('spree.store_credit.currency_mismatch')
108
- end
109
- end
110
-
111
- context 'with a valid request' do
112
- it "captures the store credit" do
113
- expect(subject.message).to include I18n.t('spree.store_credit.successful_action', action: Spree::StoreCredit::CAPTURE_ACTION)
114
- expect(subject.success?).to be true
115
- end
116
-
117
- context 'with an originator' do
118
- let(:originator) { double('originator') }
119
-
120
- it 'passes the originator' do
121
- expect_any_instance_of(Spree::StoreCredit).to receive(:capture)
122
- .with(anything, anything, anything, action_originator: originator)
123
- subject
124
- end
125
- end
126
- end
127
- end
128
-
129
- context "#void" do
130
- subject do
131
- Spree::PaymentMethod::StoreCredit.new.void(auth_code, gateway_options)
132
- end
133
-
134
- let(:auth_code) { auth_event.authorization_code }
135
- let(:gateway_options) { super().merge(originator: originator) }
136
- let(:auth_event) { create(:store_credit_auth_event) }
137
- let(:originator) { nil }
138
-
139
- context 'with an invalid auth code' do
140
- let(:auth_code) { 1 }
141
-
142
- it "declines an unknown store credit" do
143
- expect(subject.success?).to be false
144
- expect(subject.message).to include I18n.t('spree.store_credit.unable_to_find')
145
- end
146
- end
147
-
148
- context 'when the store credit is not voided successfully' do
149
- before { allow_any_instance_of(Spree::StoreCredit).to receive_messages(void: false) }
150
-
151
- it "returns an error response" do
152
- expect(subject.success?).to be false
153
- end
154
- end
155
-
156
- it "voids a valid store credit void request" do
157
- expect(subject.success?).to be true
158
- expect(subject.message).to include I18n.t('spree.store_credit.successful_action', action: Spree::StoreCredit::VOID_ACTION)
159
- end
160
-
161
- context 'with an originator' do
162
- let(:originator) { double('originator') }
163
-
164
- it 'passes the originator' do
165
- expect_any_instance_of(Spree::StoreCredit).to receive(:void)
166
- .with(anything, action_originator: originator)
167
- subject
168
- end
169
- end
170
- end
171
-
172
- context "#purchase" do
173
- it "declines a purchase if it can't find a pending credit for the correct amount" do
174
- amount = 100.0
175
- store_credit = create(:store_credit)
176
- auth_code = store_credit.generate_authorization_code
177
- store_credit.store_credit_events.create!(action: Spree::StoreCredit::ELIGIBLE_ACTION,
178
- amount: amount,
179
- authorization_code: auth_code)
180
- store_credit.store_credit_events.create!(action: Spree::StoreCredit::CAPTURE_ACTION,
181
- amount: amount,
182
- authorization_code: auth_code)
183
-
184
- resp = subject.purchase(amount * 100.0, store_credit, gateway_options)
185
- expect(resp.success?).to be false
186
- expect(resp.message).to include I18n.t('spree.store_credit.unable_to_find')
187
- end
188
-
189
- it "captures a purchase if it can find a pending credit for the correct amount" do
190
- amount = 100.0
191
- store_credit = create(:store_credit)
192
- auth_code = store_credit.generate_authorization_code
193
- store_credit.store_credit_events.create!(action: Spree::StoreCredit::ELIGIBLE_ACTION,
194
- amount: amount,
195
- authorization_code: auth_code)
196
-
197
- resp = subject.purchase(amount * 100.0, store_credit, gateway_options)
198
- expect(resp.success?).to be true
199
- expect(resp.message).to include I18n.t('spree.store_credit.successful_action', action: Spree::StoreCredit::CAPTURE_ACTION)
200
- end
201
- end
202
-
203
- context "#credit" do
204
- subject do
205
- Spree::PaymentMethod::StoreCredit.new.credit(credit_amount, auth_code, gateway_options)
206
- end
207
-
208
- let(:credit_amount) { 100.0 }
209
- let(:auth_code) { auth_event.authorization_code }
210
- let(:gateway_options) { super().merge(originator: originator) }
211
- let(:auth_event) { create(:store_credit_auth_event) }
212
- let(:originator) { nil }
213
-
214
- context 'with an invalid auth code' do
215
- let(:auth_code) { 1 }
216
-
217
- it "declines an unknown store credit" do
218
- expect(subject.success?).to be false
219
- expect(subject.message).to include I18n.t('spree.store_credit.unable_to_find')
220
- end
221
- end
222
-
223
- context "when the store credit isn't credited successfully" do
224
- before { allow_any_instance_of(Spree::StoreCredit).to receive_messages(credit: false) }
225
-
226
- it "returns an error response" do
227
- expect(subject.success?).to be false
228
- end
229
- end
230
-
231
- context 'with a valid credit request' do
232
- before { allow_any_instance_of(Spree::StoreCredit).to receive_messages(credit: true) }
233
-
234
- it "credits a valid store credit credit request" do
235
- expect(subject.success?).to be true
236
- expect(subject.message).to include I18n.t('spree.store_credit.successful_action', action: Spree::StoreCredit::CREDIT_ACTION)
237
- end
238
- end
239
-
240
- context 'with an originator' do
241
- let(:originator) { double('originator') }
242
-
243
- it 'passes the originator' do
244
- expect_any_instance_of(Spree::StoreCredit).to receive(:credit)
245
- .with(anything, anything, anything, action_originator: originator)
246
- subject
247
- end
248
- end
249
- end
250
-
251
- context "#try_void" do
252
- subject do
253
- payment_method.try_void(double(response_code: auth_code))
254
- end
255
-
256
- let(:payment_method) { described_class.create!(name: 'Store Credit') }
257
- let(:store_credit) { create(:store_credit, amount: original_amount, amount_used: captured_amount) }
258
- let(:auth_code) { "1-SC-20141111111111" }
259
- let(:original_amount) { 100.0 }
260
- let(:captured_amount) { 10.0 }
261
-
262
- shared_examples "a spree payment method" do
263
- it "returns an ActiveMerchant::Billing::Response" do
264
- expect(subject).to be_instance_of(ActiveMerchant::Billing::Response)
265
- end
266
- end
267
-
268
- context "capture event found" do
269
- let!(:store_credit_event) do
270
- create(:store_credit_capture_event,
271
- authorization_code: auth_code,
272
- amount: captured_amount,
273
- store_credit: store_credit)
274
- end
275
-
276
- it { is_expected.to be(false) }
277
-
278
- describe "called from payment#cancel!" do
279
- subject { payment.cancel! }
280
-
281
- let!(:payment) do
282
- create(:payment,
283
- order: order,
284
- payment_method: payment_method,
285
- source: store_credit,
286
- amount: captured_amount,
287
- response_code: auth_code)
288
- end
289
-
290
- it "refunds the capture amount" do
291
- expect { subject }.to change { store_credit.reload.amount_remaining }.
292
- from(original_amount - captured_amount).
293
- to(original_amount)
294
- end
295
- end
296
- end
297
-
298
- context "capture event not found" do
299
- context "auth event found" do
300
- let!(:store_credit_event) do
301
- create(:store_credit_auth_event,
302
- authorization_code: auth_code,
303
- amount: captured_amount,
304
- store_credit: store_credit)
305
- end
306
-
307
- it_behaves_like "a spree payment method"
308
-
309
- it "voids the capture amount" do
310
- expect { subject }.to change { store_credit.reload.amount_remaining }.
311
- from(original_amount - captured_amount).
312
- to(original_amount)
313
- end
314
- end
315
-
316
- context "store credit event not found" do
317
- let(:auth_code) { 'INVALID' }
318
-
319
- it_behaves_like "a spree payment method"
320
-
321
- it { is_expected.to_not be_success }
322
- end
323
- end
324
- end
325
- end