solidus_core 2.10.5 → 2.11.0

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

Potentially problematic release.


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

Files changed (494) 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 +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.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/job_helpers.rb +24 -0
  160. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  161. data/lib/spree/testing_support/preferences.rb +3 -1
  162. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  163. data/lib/spree/testing_support/translations.rb +25 -0
  164. data/solidus_core.gemspec +7 -4
  165. metadata +91 -370
  166. data/script/rails +0 -10
  167. data/spec/fixtures/thinking-cat.jpg +0 -0
  168. data/spec/helpers/base_helper_spec.rb +0 -168
  169. data/spec/helpers/products_helper_spec.rb +0 -202
  170. data/spec/helpers/taxons_helper_spec.rb +0 -43
  171. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  172. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  173. data/spec/lib/i18n_spec.rb +0 -97
  174. data/spec/lib/search/base_spec.rb +0 -91
  175. data/spec/lib/search/variant_spec.rb +0 -115
  176. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  177. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  178. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  179. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  180. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  181. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  182. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  183. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  184. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  185. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  186. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  187. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  188. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  189. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  190. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  191. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  192. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  193. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  194. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  195. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  196. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  197. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  198. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  199. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  201. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  202. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  204. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  205. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  206. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  207. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  208. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  209. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  210. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  212. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  214. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  215. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  216. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  217. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  218. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  219. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  221. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  222. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  223. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  224. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  226. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  227. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  228. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  229. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  230. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  231. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  232. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  233. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  234. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  235. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  237. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  238. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  240. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  241. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  242. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  243. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  244. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  245. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  246. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  247. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  248. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  249. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  250. data/spec/lib/spree/core/version_spec.rb +0 -19
  251. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  252. data/spec/lib/spree/event_spec.rb +0 -130
  253. data/spec/lib/spree/localized_number_spec.rb +0 -45
  254. data/spec/lib/spree/migrations_spec.rb +0 -32
  255. data/spec/lib/spree/money_spec.rb +0 -298
  256. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  257. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  258. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  259. data/spec/lib/tasks/dummy_task.rake +0 -12
  260. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  261. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  262. data/spec/mailers/carton_mailer_spec.rb +0 -44
  263. data/spec/mailers/order_mailer_spec.rb +0 -117
  264. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  265. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  266. data/spec/mailers/test_mailer_spec.rb +0 -13
  267. data/spec/models/spree/ability_spec.rb +0 -279
  268. data/spec/models/spree/address_spec.rb +0 -399
  269. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  270. data/spec/models/spree/adjustment_spec.rb +0 -339
  271. data/spec/models/spree/asset_spec.rb +0 -25
  272. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  273. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  274. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  275. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  276. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  277. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  278. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  279. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  280. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  281. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  282. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  283. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  284. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  285. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  286. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  287. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  288. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  289. data/spec/models/spree/calculator_spec.rb +0 -43
  290. data/spec/models/spree/carton_spec.rb +0 -145
  291. data/spec/models/spree/classification_spec.rb +0 -126
  292. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  293. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  294. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  295. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  296. data/spec/models/spree/country_spec.rb +0 -154
  297. data/spec/models/spree/credit_card_spec.rb +0 -373
  298. data/spec/models/spree/customer_return_spec.rb +0 -294
  299. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  300. data/spec/models/spree/exchange_spec.rb +0 -76
  301. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  302. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  303. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  304. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  305. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  306. data/spec/models/spree/gateway_spec.rb +0 -14
  307. data/spec/models/spree/image_spec.rb +0 -25
  308. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  309. data/spec/models/spree/line_item_spec.rb +0 -240
  310. data/spec/models/spree/option_type_spec.rb +0 -16
  311. data/spec/models/spree/option_value_spec.rb +0 -52
  312. data/spec/models/spree/order/address_spec.rb +0 -52
  313. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  314. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  315. data/spec/models/spree/order/checkout_spec.rb +0 -740
  316. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  317. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  318. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  319. data/spec/models/spree/order/payment_spec.rb +0 -280
  320. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  321. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  322. data/spec/models/spree/order/totals_spec.rb +0 -26
  323. data/spec/models/spree/order/validations_spec.rb +0 -17
  324. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  325. data/spec/models/spree/order_capturing_spec.rb +0 -16
  326. data/spec/models/spree/order_contents_spec.rb +0 -362
  327. data/spec/models/spree/order_inventory_spec.rb +0 -285
  328. data/spec/models/spree/order_merger_spec.rb +0 -162
  329. data/spec/models/spree/order_mutex_spec.rb +0 -89
  330. data/spec/models/spree/order_promotion_spec.rb +0 -33
  331. data/spec/models/spree/order_shipping_spec.rb +0 -247
  332. data/spec/models/spree/order_spec.rb +0 -1687
  333. data/spec/models/spree/order_taxation_spec.rb +0 -128
  334. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  335. data/spec/models/spree/order_updater_spec.rb +0 -556
  336. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  337. data/spec/models/spree/payment_create_spec.rb +0 -195
  338. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  339. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  340. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  341. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  342. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  343. data/spec/models/spree/payment_method_spec.rb +0 -408
  344. data/spec/models/spree/payment_spec.rb +0 -1270
  345. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  346. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  347. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  348. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  349. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  350. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  351. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  352. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  353. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  354. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  355. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  356. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  357. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  358. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  359. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  360. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  361. data/spec/models/spree/preference_spec.rb +0 -79
  362. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  363. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  364. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  365. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  366. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  367. data/spec/models/spree/preferences/store_spec.rb +0 -40
  368. data/spec/models/spree/price_spec.rb +0 -150
  369. data/spec/models/spree/product/scopes_spec.rb +0 -164
  370. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  371. data/spec/models/spree/product_filter_spec.rb +0 -28
  372. data/spec/models/spree/product_property_spec.rb +0 -20
  373. data/spec/models/spree/product_spec.rb +0 -584
  374. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  375. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  376. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  377. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  378. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  379. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  380. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  381. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  382. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  383. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  384. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  385. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  386. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  387. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  388. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  389. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  390. data/spec/models/spree/promotion_action_spec.rb +0 -44
  391. data/spec/models/spree/promotion_category_spec.rb +0 -19
  392. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  393. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  394. data/spec/models/spree/promotion_code_spec.rb +0 -206
  395. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  396. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  397. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  398. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  399. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  400. data/spec/models/spree/promotion_spec.rb +0 -945
  401. data/spec/models/spree/refund_spec.rb +0 -200
  402. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  403. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  404. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  405. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  406. data/spec/models/spree/reimbursement_spec.rb +0 -278
  407. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  408. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  409. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  410. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  411. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  412. data/spec/models/spree/return_authorization_spec.rb +0 -226
  413. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  414. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  415. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  416. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  417. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  418. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  419. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  420. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  421. data/spec/models/spree/return_item_spec.rb +0 -785
  422. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  423. data/spec/models/spree/shipment_spec.rb +0 -914
  424. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  425. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  426. data/spec/models/spree/shipping_method_spec.rb +0 -292
  427. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  428. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  429. data/spec/models/spree/state_spec.rb +0 -43
  430. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  431. data/spec/models/spree/stock/availability_spec.rb +0 -143
  432. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  433. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  434. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  435. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  436. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  437. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  438. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  439. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  440. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  441. data/spec/models/spree/stock/package_spec.rb +0 -182
  442. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  443. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  444. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  445. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  446. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  447. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  448. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  449. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  450. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  451. data/spec/models/spree/stock_item_spec.rb +0 -348
  452. data/spec/models/spree/stock_location_spec.rb +0 -288
  453. data/spec/models/spree/stock_movement_spec.rb +0 -58
  454. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  455. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  456. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  457. data/spec/models/spree/store_credit_spec.rb +0 -900
  458. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  459. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  460. data/spec/models/spree/store_spec.rb +0 -156
  461. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  462. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  463. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  464. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  465. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  466. data/spec/models/spree/tax_category_spec.rb +0 -50
  467. data/spec/models/spree/tax_rate_spec.rb +0 -317
  468. data/spec/models/spree/taxon_spec.rb +0 -197
  469. data/spec/models/spree/taxonomy_spec.rb +0 -15
  470. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  471. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  472. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  473. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  474. data/spec/models/spree/user_spec.rb +0 -247
  475. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  476. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  477. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  478. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  479. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  480. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  481. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  482. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  483. data/spec/models/spree/variant_spec.rb +0 -862
  484. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  485. data/spec/models/spree/wallet_spec.rb +0 -155
  486. data/spec/models/spree/zone_spec.rb +0 -248
  487. data/spec/rails_helper.rb +0 -46
  488. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  489. data/spec/spec_helper.rb +0 -36
  490. data/spec/support/big_decimal.rb +0 -7
  491. data/spec/support/concerns/default_price.rb +0 -44
  492. data/spec/support/concerns/payment_source.rb +0 -66
  493. data/spec/support/concerns/working_factories.rb +0 -15
  494. data/spec/support/dummy_ability.rb +0 -7
data/script/rails DELETED
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
5
-
6
- ENGINE_ROOT = File.expand_path('..', __dir__)
7
- ENGINE_PATH = File.expand_path('../lib/spree/core/engine', __dir__)
8
-
9
- require 'rails/all'
10
- require 'rails/engine/commands'
Binary file
@@ -1,168 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::BaseHelper, type: :helper do
6
- include Spree::BaseHelper
7
-
8
- let(:current_store){ create :store }
9
-
10
- context "available_countries" do
11
- let(:country) { create(:country) }
12
-
13
- before do
14
- 3.times { create(:country) }
15
- end
16
-
17
- context "with no checkout zone defined" do
18
- before do
19
- stub_spree_preferences(checkout_zone: nil)
20
- end
21
-
22
- it "return complete list of countries" do
23
- expect(available_countries.count).to eq(Spree::Country.count)
24
- end
25
-
26
- it "uses locales for country names" do
27
- expect(available_countries).to include(having_attributes(name: "United States of America"))
28
- end
29
- end
30
-
31
- context "with a checkout zone defined" do
32
- context "checkout zone is of type country" do
33
- before do
34
- @country_zone = create(:zone, name: "CountryZone")
35
- @country_zone.members.create(zoneable: country)
36
- stub_spree_preferences(checkout_zone: @country_zone.name)
37
- end
38
-
39
- it "return only the countries defined by the checkout zone" do
40
- expect(available_countries).to eq([country])
41
- end
42
-
43
- it "returns only the countries defined by the checkout zone passed as parameter" do
44
- expect(available_countries(restrict_to_zone: @country_zone.name)).to eq([country])
45
- end
46
- end
47
-
48
- context "checkout zone is of type state" do
49
- before do
50
- state_zone = create(:zone, name: "StateZone")
51
- state = create(:state, country: country)
52
- state_zone.members.create(zoneable: state)
53
- stub_spree_preferences(checkout_zone: state_zone.name)
54
- end
55
-
56
- it "return complete list of countries" do
57
- expect(available_countries.count).to eq(Spree::Country.count)
58
- end
59
- end
60
- end
61
- end
62
-
63
- # Regression test for https://github.com/spree/spree/issues/2034
64
- context "flash_message" do
65
- let(:flash) { { "notice" => "ok", "foo" => "foo", "bar" => "bar" } }
66
-
67
- it "should output all flash content" do
68
- flash_messages
69
- html = Nokogiri::HTML(helper.output_buffer)
70
- expect(html.css(".notice").text).to eq("ok")
71
- expect(html.css(".foo").text).to eq("foo")
72
- expect(html.css(".bar").text).to eq("bar")
73
- end
74
-
75
- it "should output flash content except one key" do
76
- flash_messages(ignore_types: :bar)
77
- html = Nokogiri::HTML(helper.output_buffer)
78
- expect(html.css(".notice").text).to eq("ok")
79
- expect(html.css(".foo").text).to eq("foo")
80
- expect(html.css(".bar").text).to be_empty
81
- end
82
-
83
- it "should output flash content except some keys" do
84
- flash_messages(ignore_types: [:foo, :bar])
85
- html = Nokogiri::HTML(helper.output_buffer)
86
- expect(html.css(".notice").text).to eq("ok")
87
- expect(html.css(".foo").text).to be_empty
88
- expect(html.css(".bar").text).to be_empty
89
- expect(helper.output_buffer).to eq("<div class=\"flash notice\">ok</div>")
90
- end
91
- end
92
-
93
- context "link_to_tracking" do
94
- it "returns tracking link if available" do
95
- a = link_to_tracking_html(shipping_method: true, tracking: '123', tracking_url: 'http://g.c/?t=123').css('a')
96
-
97
- expect(a.text).to eq '123'
98
- expect(a.attr('href').value).to eq 'http://g.c/?t=123'
99
- end
100
-
101
- it "returns tracking without link if link unavailable" do
102
- html = link_to_tracking_html(shipping_method: true, tracking: '123', tracking_url: nil)
103
- expect(html.css('span').text).to eq '123'
104
- end
105
-
106
- it "returns nothing when no shipping method" do
107
- html = link_to_tracking_html(shipping_method: nil, tracking: '123')
108
- expect(html.css('span').text).to eq ''
109
- end
110
-
111
- it "returns nothing when no tracking" do
112
- html = link_to_tracking_html(tracking: nil)
113
- expect(html.css('span').text).to eq ''
114
- end
115
-
116
- def link_to_tracking_html(options = {})
117
- node = link_to_tracking(double(:shipment, options))
118
- Nokogiri::HTML(node.to_s)
119
- end
120
- end
121
-
122
- # Regression test for https://github.com/spree/spree/issues/2396
123
- context "meta_data_tags" do
124
- it "truncates a product description to 160 characters" do
125
- # Because the controller_name method returns "test"
126
- # controller_name is used by this method to infer what it is supposed
127
- # to be generating meta_data_tags for
128
- @test = Spree::Product.new(description: "a" * 200)
129
- tags = Nokogiri::HTML.parse(meta_data_tags)
130
- content = tags.css("meta[name=description]").first["content"]
131
- expect(content.length).to be <= 160
132
- end
133
- end
134
-
135
- describe "#pretty_time" do
136
- subject { pretty_time(date) }
137
-
138
- let(:date) { Time.new(2012, 11, 6, 13, 33) }
139
-
140
- it "pretty prints time in long format" do
141
- is_expected.to eq "November 06, 2012 1:33 PM"
142
- end
143
-
144
- context 'with format set to short' do
145
- subject { pretty_time(date, :short) }
146
-
147
- it "pretty prints time in short format" do
148
- is_expected.to eq "Nov 6 '12 1:33pm"
149
- end
150
- end
151
- end
152
-
153
- context "plural_resource_name" do
154
- let(:plural_config) { Spree::I18N_GENERIC_PLURAL }
155
- let(:base_class) { Spree::Product }
156
-
157
- subject { plural_resource_name(base_class) }
158
-
159
- it "should use ActiveModel::Naming module to pluralize model names" do
160
- expect(subject).to eq base_class.model_name.human(count: plural_config)
161
- end
162
-
163
- it "should use the Spree::I18N_GENERIC_PLURAL constant" do
164
- expect(base_class.model_name).to receive(:human).with(hash_including(count: plural_config))
165
- subject
166
- end
167
- end
168
- end
@@ -1,202 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- module Spree
6
- RSpec.describe ProductsHelper, type: :helper do
7
- include ProductsHelper
8
-
9
- let(:product) { create(:product, price: product_price) }
10
- let(:product_price) { 10 }
11
- let(:variant) { create(:variant, product: product, price: variant_price) }
12
- let(:currency) { 'USD' }
13
- let(:pricing_options) do
14
- Spree::Config.pricing_options_class.new(currency: currency)
15
- end
16
-
17
- before do
18
- without_partial_double_verification do
19
- allow(helper).to receive(:current_pricing_options) { pricing_options }
20
- end
21
- end
22
-
23
- context "#variant_price_diff" do
24
- let(:variant_price) { 10 }
25
-
26
- subject { helper.variant_price(variant) }
27
-
28
- context "when variant is same as master" do
29
- it { is_expected.to be_nil }
30
- end
31
-
32
- context "when currency is default" do
33
- context "when variant is more than master" do
34
- let(:variant_price) { 15 }
35
-
36
- it { is_expected.to eq("(Add: <span class=\"money-currency-symbol\">$</span><span class=\"money-whole\">5</span><span class=\"money-decimal-mark\">.</span><span class=\"money-decimal\">00</span>)") }
37
- # Regression test for https://github.com/spree/spree/issues/2737
38
- it { is_expected.to be_html_safe }
39
- end
40
-
41
- context "when variant is less than master" do
42
- let(:product_price) { 15 }
43
-
44
- it { is_expected.to eq("(Subtract: <span class=\"money-currency-symbol\">$</span><span class=\"money-whole\">5</span><span class=\"money-decimal-mark\">.</span><span class=\"money-decimal\">00</span>)") }
45
- end
46
- end
47
-
48
- context "when currency is JPY" do
49
- let(:variant_price) { 100 }
50
- let(:product_price) { 100 }
51
- let(:currency) { 'JPY' }
52
-
53
- before do
54
- variant
55
- product.prices.update_all(currency: currency)
56
- end
57
-
58
- context "when variant is more than master" do
59
- let(:variant_price) { 150 }
60
-
61
- it { is_expected.to eq("(Add: <span class=\"money-currency-symbol\">&#x00A5;</span><span class=\"money-whole\">50</span>)") }
62
- end
63
-
64
- context "when variant is less than master" do
65
- let(:product_price) { 150 }
66
-
67
- it { is_expected.to eq("(Subtract: <span class=\"money-currency-symbol\">&#x00A5;</span><span class=\"money-whole\">50</span>)") }
68
- end
69
- end
70
- end
71
-
72
- context "#variant_price_full" do
73
- let!(:variant_2) { create(:variant, product: product, price: variant_2_price) }
74
- let(:variant_2_price) { 20 }
75
- let(:variant_price) { 15 }
76
-
77
- before do
78
- stub_spree_preferences(show_variant_full_price: true)
79
- variant
80
- end
81
-
82
- context "when currency is default" do
83
- it "should return the variant price if the price is different than master" do
84
- expect(helper.variant_price(variant)).to eq("<span class=\"money-currency-symbol\">$</span><span class=\"money-whole\">15</span><span class=\"money-decimal-mark\">.</span><span class=\"money-decimal\">00</span>")
85
- expect(helper.variant_price(variant_2)).to eq("<span class=\"money-currency-symbol\">$</span><span class=\"money-whole\">20</span><span class=\"money-decimal-mark\">.</span><span class=\"money-decimal\">00</span>")
86
- end
87
- end
88
-
89
- context "when currency is JPY" do
90
- let(:currency) { 'JPY' }
91
- let(:product_price) { 100 }
92
- let(:variant_price) { 150 }
93
-
94
- before do
95
- variant
96
- product.prices.update_all(currency: currency)
97
- end
98
-
99
- it "should return the variant price if the price is different than master" do
100
- expect(helper.variant_price(variant)).to eq("<span class=\"money-currency-symbol\">&#x00A5;</span><span class=\"money-whole\">150</span>")
101
- end
102
- end
103
-
104
- context "when all variant prices are equal" do
105
- let(:product_price) { 10 }
106
- let(:variant_price) { 10 }
107
- let(:variant_2_price) { 10 }
108
-
109
- it "should be nil" do
110
- expect(helper.variant_price(variant)).to be_nil
111
- expect(helper.variant_price(variant_2)).to be_nil
112
- end
113
- end
114
- end
115
-
116
- context "#product_description" do
117
- # Regression test for https://github.com/spree/spree/issues/1607
118
- it "renders a product description without excessive paragraph breaks" do
119
- product.description = %{
120
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a ligula leo. Proin eu arcu at ipsum dapibus ullamcorper. Pellentesque egestas orci nec magna condimentum luctus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut ac ante et mauris bibendum ultricies non sed massa. Fusce facilisis dui eget lacus scelerisque eget aliquam urna ultricies. Duis et rhoncus quam. Praesent tellus nisi, ultrices sed iaculis quis, euismod interdum ipsum.</p>
121
- <ul>
122
- <li>Lorem ipsum dolor sit amet</li>
123
- <li>Lorem ipsum dolor sit amet</li>
124
- </ul>
125
- }
126
- description = product_description(product)
127
- expect(description.strip).to eq(product.description.strip)
128
- end
129
-
130
- it "renders a product description with automatic paragraph breaks" do
131
- product.description = %{
132
- THIS IS THE BEST PRODUCT EVER!
133
-
134
- "IT CHANGED MY LIFE" - Sue, MD}
135
-
136
- description = product_description(product)
137
- expect(description.strip).to eq(%{<p>\nTHIS IS THE BEST PRODUCT EVER!</p>"IT CHANGED MY LIFE" - Sue, MD})
138
- end
139
-
140
- it "renders a product description without any formatting based on configuration" do
141
- description = %{
142
- <p>hello world</p>
143
-
144
- <p>tihs is completely awesome and it works</p>
145
-
146
- <p>why so many spaces in the code. and why some more formatting afterwards?</p>
147
- }
148
-
149
- product.description = description
150
-
151
- stub_spree_preferences(show_raw_product_description: true)
152
- description = product_description(product)
153
- expect(description).to eq(description)
154
- end
155
- end
156
-
157
- context '#line_item_description_text' do
158
- subject { line_item_description_text description }
159
- context 'variant has a blank description' do
160
- let(:description) { nil }
161
- it { is_expected.to eq(I18n.t('spree.product_has_no_description')) }
162
- end
163
- context 'variant has a description' do
164
- let(:description) { 'test_desc' }
165
- it { is_expected.to eq(description) }
166
- end
167
- context 'description has nonbreaking spaces' do
168
- let(:description) { 'test&nbsp;desc' }
169
- it { is_expected.to eq('test desc') }
170
- end
171
- end
172
-
173
- context '#cache_key_for_products' do
174
- subject { helper.cache_key_for_products }
175
- before(:each) do
176
- @products = double('products collection')
177
- allow(helper).to receive(:params) { { page: 10 } }
178
- end
179
-
180
- context 'when there is a maximum updated date' do
181
- let(:updated_at) { Date.new(2011, 12, 13) }
182
- before :each do
183
- allow(@products).to receive(:count) { 5 }
184
- allow(@products).to receive(:maximum).with(:updated_at) { updated_at }
185
- end
186
-
187
- it { is_expected.to eq('en/USD/spree/products/all-10-20111213-5') }
188
- end
189
-
190
- context 'when there is no considered maximum updated date' do
191
- let(:today) { Date.new(2013, 12, 11) }
192
- before :each do
193
- allow(@products).to receive(:count) { 1_234_567 }
194
- allow(@products).to receive(:maximum).with(:updated_at) { nil }
195
- allow(Date).to receive(:today) { today }
196
- end
197
-
198
- it { is_expected.to eq('en/USD/spree/products/all-10-20131211-1234567') }
199
- end
200
- end
201
- end
202
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::TaxonsHelper, type: :helper do
6
- let(:currency) { 'USD' }
7
- let(:pricing_options) do
8
- Spree::Config.pricing_options_class.new(currency: currency)
9
- end
10
- before do
11
- without_partial_double_verification do
12
- allow(helper).to receive(:current_pricing_options) { pricing_options }
13
- end
14
- end
15
-
16
- describe "#taxon_preview" do
17
- let!(:taxon) { create(:taxon) }
18
- let!(:child_taxon) { create(:taxon, parent: taxon) }
19
- let!(:product_1) { create(:product) }
20
- let!(:product_2) { create(:product) }
21
- let!(:product_3) { create(:product) }
22
-
23
- before do
24
- taxon.products << product_1
25
- taxon.products << product_2
26
- child_taxon.products << product_3
27
- taxon.reload
28
- end
29
-
30
- # Regression test for https://github.com/spree/spree/issues/4382
31
- it "returns products" do
32
- expect(helper.taxon_preview(taxon)).to eql([product_1, product_2, product_3])
33
- end
34
-
35
- context "with different currency" do
36
- let(:currency) { 'CAD' }
37
-
38
- it "returns no products" do
39
- expect(helper.taxon_preview(taxon)).to be_empty
40
- end
41
- end
42
- end
43
- end
@@ -1,96 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
- RSpec.describe Spree::PromotionCodeBatchJob, type: :job do
5
- let(:email) { "test@email.com" }
6
- let(:promotion_code_batch) do
7
- Spree::PromotionCodeBatch.create!(
8
- promotion_id: create(:promotion).id,
9
- base_code: "test",
10
- number_of_codes: 10,
11
- email: email
12
- )
13
- end
14
- context "with a successful build" do
15
- before do
16
- allow(Spree::PromotionCodeBatchMailer)
17
- .to receive(:promotion_code_batch_finished)
18
- .and_call_original
19
- end
20
-
21
- def codes
22
- Spree::PromotionCode.pluck(:value)
23
- end
24
-
25
- context 'with the default join character' do
26
- it 'uses the default join characters', :aggregate_failures do
27
- subject.perform(promotion_code_batch)
28
- codes.each do |code|
29
- expect(code).to match(/^test_/)
30
- end
31
- end
32
- end
33
- context 'with a custom join character' do
34
- let(:promotion_code_batch) do
35
- Spree::PromotionCodeBatch.create!(
36
- promotion_id: create(:promotion).id,
37
- base_code: "test",
38
- number_of_codes: 10,
39
- email: email,
40
- join_characters: '-'
41
- )
42
- end
43
- it 'uses the custom join characters', :aggregate_failures do
44
- subject.perform(promotion_code_batch)
45
- codes.each do |code|
46
- expect(code).to match(/^test-/)
47
- end
48
- end
49
- end
50
- context "with an email address" do
51
- it "sends an email" do
52
- subject.perform(promotion_code_batch)
53
- expect(Spree::PromotionCodeBatchMailer)
54
- .to have_received(:promotion_code_batch_finished)
55
- end
56
- end
57
- context "with no email address" do
58
- let(:email) { nil }
59
- it "sends an email" do
60
- subject.perform(promotion_code_batch)
61
- expect(Spree::PromotionCodeBatchMailer)
62
- .to_not have_received(:promotion_code_batch_finished)
63
- end
64
- end
65
- end
66
-
67
- context "with a failed build" do
68
- before do
69
- allow_any_instance_of(Spree::PromotionCode::BatchBuilder)
70
- .to receive(:build_promotion_codes)
71
- .and_raise("Error")
72
-
73
- allow(Spree::PromotionCodeBatchMailer)
74
- .to receive(:promotion_code_batch_errored)
75
- .and_call_original
76
-
77
- expect { subject.perform(promotion_code_batch) }
78
- .to raise_error RuntimeError
79
- end
80
-
81
- context "with an email address" do
82
- it "sends an email" do
83
- expect(Spree::PromotionCodeBatchMailer)
84
- .to have_received(:promotion_code_batch_errored)
85
- end
86
- end
87
-
88
- context "with no email address" do
89
- let(:email) { nil }
90
- it "sends an email" do
91
- expect(Spree::PromotionCodeBatchMailer)
92
- .to_not have_received(:promotion_code_batch_errored)
93
- end
94
- end
95
- end
96
- end