solidus_core 2.10.3 → 2.11.4

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.

Potentially problematic release.


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

Files changed (552) 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 +2 -2
  19. data/app/models/spree/calculator.rb +4 -4
  20. data/app/models/spree/calculator/default_tax.rb +1 -1
  21. data/app/models/spree/calculator/free_shipping.rb +1 -0
  22. data/app/models/spree/calculator/percent_per_item.rb +6 -4
  23. data/app/models/spree/calculator/price_sack.rb +2 -1
  24. data/app/models/spree/credit_card.rb +2 -2
  25. data/app/models/spree/customer_return.rb +4 -2
  26. data/app/models/spree/exchange.rb +1 -1
  27. data/app/models/spree/image/active_storage_attachment.rb +21 -0
  28. data/app/models/spree/inventory_unit.rb +1 -1
  29. data/app/models/spree/line_item.rb +13 -4
  30. data/app/models/spree/option_type.rb +1 -1
  31. data/app/models/spree/option_value.rb +2 -2
  32. data/app/models/spree/order.rb +91 -20
  33. data/app/models/spree/order/checkout.rb +1 -0
  34. data/app/models/spree/order/payments.rb +2 -2
  35. data/app/models/spree/order_inventory.rb +16 -4
  36. data/app/models/spree/order_merger.rb +6 -4
  37. data/app/models/spree/order_promotion.rb +1 -1
  38. data/app/models/spree/order_updater.rb +11 -10
  39. data/app/models/spree/payment.rb +3 -3
  40. data/app/models/spree/payment/cancellation.rb +3 -22
  41. data/app/models/spree/payment/processing.rb +54 -30
  42. data/app/models/spree/payment_method.rb +8 -9
  43. data/app/models/spree/payment_source.rb +2 -2
  44. data/app/models/spree/preference.rb +1 -1
  45. data/app/models/spree/price.rb +2 -8
  46. data/app/models/spree/product.rb +19 -14
  47. data/app/models/spree/product/scopes.rb +9 -5
  48. data/app/models/spree/promotion.rb +18 -7
  49. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  50. data/app/models/spree/promotion_action.rb +1 -7
  51. data/app/models/spree/promotion_code.rb +6 -1
  52. data/app/models/spree/promotion_code_batch.rb +1 -1
  53. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  54. data/app/models/spree/promotion_rule.rb +1 -1
  55. data/app/models/spree/promotion_rule_role.rb +1 -1
  56. data/app/models/spree/refund.rb +60 -12
  57. data/app/models/spree/reimbursement.rb +27 -0
  58. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
  59. data/app/models/spree/return_authorization.rb +1 -1
  60. data/app/models/spree/return_item.rb +21 -10
  61. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  62. data/app/models/spree/role.rb +1 -1
  63. data/app/models/spree/shipment.rb +2 -2
  64. data/app/models/spree/shipping_calculator.rb +1 -1
  65. data/app/models/spree/shipping_manifest.rb +2 -2
  66. data/app/models/spree/shipping_method.rb +2 -9
  67. data/app/models/spree/shipping_rate.rb +1 -1
  68. data/app/models/spree/shipping_rate_tax.rb +1 -1
  69. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  70. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  71. data/app/models/spree/stock/package.rb +1 -1
  72. data/app/models/spree/stock/simple_coordinator.rb +1 -3
  73. data/app/models/spree/stock_item.rb +2 -8
  74. data/app/models/spree/stock_movement.rb +2 -0
  75. data/app/models/spree/store.rb +1 -1
  76. data/app/models/spree/store_credit.rb +1 -7
  77. data/app/models/spree/store_credit_category.rb +30 -3
  78. data/app/models/spree/store_credit_event.rb +1 -7
  79. data/app/models/spree/store_credit_reason.rb +0 -4
  80. data/app/models/spree/tax/tax_helpers.rb +1 -1
  81. data/app/models/spree/tax_category.rb +2 -8
  82. data/app/models/spree/tax_rate.rb +7 -7
  83. data/app/models/spree/taxon.rb +1 -1
  84. data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
  85. data/app/models/spree/user_address.rb +8 -2
  86. data/app/models/spree/variant.rb +7 -13
  87. data/app/models/spree/variant_property_rule.rb +5 -1
  88. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  89. data/app/models/spree/zone.rb +1 -1
  90. data/config/locales/en.yml +44 -5
  91. data/db/default/spree/countries.rb +1 -1
  92. data/db/default/spree/states.rb +12 -4
  93. data/db/default/spree/store_credit.rb +2 -2
  94. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  95. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  96. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  97. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  98. data/lib/generators/solidus/install/install_generator.rb +253 -0
  99. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +36 -5
  100. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  101. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  102. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  103. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  104. data/lib/generators/spree/dummy/templates/rails/test.rb +1 -1
  105. data/lib/generators/spree/install/install_generator.rb +7 -189
  106. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  107. data/lib/spree/app_configuration.rb +117 -51
  108. data/lib/spree/awesome_nested_set_override.rb +44 -0
  109. data/lib/spree/core.rb +6 -11
  110. data/lib/spree/core/controller_helpers/auth.rb +17 -4
  111. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  112. data/lib/spree/core/controller_helpers/order.rb +8 -7
  113. data/lib/spree/core/engine.rb +39 -2
  114. data/lib/spree/core/importer/order.rb +24 -10
  115. data/lib/spree/core/permalinks.rb +1 -3
  116. data/lib/spree/core/product_filters.rb +6 -5
  117. data/lib/spree/core/state_machines.rb +20 -1
  118. data/lib/spree/core/state_machines/order.rb +249 -0
  119. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  120. data/lib/spree/core/version.rb +1 -1
  121. data/lib/spree/encryptor.rb +25 -0
  122. data/lib/spree/event.rb +40 -7
  123. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  124. data/lib/spree/event/configuration.rb +11 -6
  125. data/lib/spree/event/subscriber.rb +38 -18
  126. data/lib/spree/event/subscriber_registry.rb +92 -0
  127. data/lib/spree/i18n.rb +1 -1
  128. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  129. data/lib/spree/paranoia_deprecations.rb +32 -12
  130. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  131. data/lib/spree/permission_sets/default_customer.rb +16 -16
  132. data/lib/spree/permission_sets/order_display.rb +11 -11
  133. data/lib/spree/permission_sets/order_management.rb +1 -1
  134. data/lib/spree/permission_sets/product_display.rb +9 -9
  135. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  136. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  137. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  138. data/lib/spree/permission_sets/stock_display.rb +2 -2
  139. data/lib/spree/permission_sets/stock_management.rb +1 -1
  140. data/lib/spree/permission_sets/user_display.rb +3 -3
  141. data/lib/spree/permission_sets/user_management.rb +4 -3
  142. data/lib/spree/permitted_attributes.rb +9 -8
  143. data/lib/spree/preferences/preferable.rb +4 -3
  144. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  145. data/lib/spree/testing_support.rb +40 -0
  146. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  147. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  148. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  149. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  150. data/lib/spree/testing_support/common_rake.rb +3 -3
  151. data/lib/spree/testing_support/dummy_app.rb +44 -23
  152. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  153. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  154. data/lib/spree/testing_support/factories.rb +2 -4
  155. data/lib/spree/testing_support/factories/address_factory.rb +3 -4
  156. data/lib/spree/testing_support/factories/adjustment_factory.rb +2 -5
  157. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +3 -0
  158. data/lib/spree/testing_support/factories/calculator_factory.rb +3 -0
  159. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  160. data/lib/spree/testing_support/factories/country_factory.rb +3 -0
  161. data/lib/spree/testing_support/factories/credit_card_factory.rb +3 -0
  162. data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -3
  163. data/lib/spree/testing_support/factories/image_factory.rb +4 -1
  164. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +2 -4
  165. data/lib/spree/testing_support/factories/line_item_factory.rb +2 -2
  166. data/lib/spree/testing_support/factories/option_type_factory.rb +3 -0
  167. data/lib/spree/testing_support/factories/option_value_factory.rb +3 -0
  168. data/lib/spree/testing_support/factories/order_factory.rb +2 -6
  169. data/lib/spree/testing_support/factories/order_promotion_factory.rb +2 -2
  170. data/lib/spree/testing_support/factories/payment_factory.rb +2 -4
  171. data/lib/spree/testing_support/factories/payment_method_factory.rb +3 -0
  172. data/lib/spree/testing_support/factories/price_factory.rb +2 -1
  173. data/lib/spree/testing_support/factories/product_factory.rb +2 -5
  174. data/lib/spree/testing_support/factories/product_option_type_factory.rb +2 -2
  175. data/lib/spree/testing_support/factories/product_property_factory.rb +2 -2
  176. data/lib/spree/testing_support/factories/promotion_category_factory.rb +3 -0
  177. data/lib/spree/testing_support/factories/promotion_code_factory.rb +2 -2
  178. data/lib/spree/testing_support/factories/promotion_factory.rb +8 -2
  179. data/lib/spree/testing_support/factories/property_factory.rb +3 -0
  180. data/lib/spree/testing_support/factories/refund_factory.rb +3 -2
  181. data/lib/spree/testing_support/factories/refund_reason_factory.rb +3 -0
  182. data/lib/spree/testing_support/factories/reimbursement_factory.rb +3 -2
  183. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +3 -0
  184. data/lib/spree/testing_support/factories/return_authorization_factory.rb +2 -3
  185. data/lib/spree/testing_support/factories/return_item_factory.rb +2 -4
  186. data/lib/spree/testing_support/factories/return_reason_factory.rb +3 -0
  187. data/lib/spree/testing_support/factories/role_factory.rb +3 -0
  188. data/lib/spree/testing_support/factories/shipment_factory.rb +2 -3
  189. data/lib/spree/testing_support/factories/shipping_category_factory.rb +3 -0
  190. data/lib/spree/testing_support/factories/shipping_method_factory.rb +2 -3
  191. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +2 -2
  192. data/lib/spree/testing_support/factories/state_factory.rb +2 -1
  193. data/lib/spree/testing_support/factories/stock_item_factory.rb +2 -2
  194. data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -3
  195. data/lib/spree/testing_support/factories/stock_movement_factory.rb +2 -1
  196. data/lib/spree/testing_support/factories/stock_package_factory.rb +2 -2
  197. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +11 -0
  198. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +3 -2
  199. data/lib/spree/testing_support/factories/store_credit_factory.rb +2 -3
  200. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +6 -1
  201. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +3 -0
  202. data/lib/spree/testing_support/factories/store_factory.rb +4 -1
  203. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -1
  204. data/lib/spree/testing_support/factories/tax_rate_factory.rb +2 -3
  205. data/lib/spree/testing_support/factories/taxon_factory.rb +6 -1
  206. data/lib/spree/testing_support/factories/taxonomy_factory.rb +3 -0
  207. data/lib/spree/testing_support/factories/user_factory.rb +2 -3
  208. data/lib/spree/testing_support/factories/variant_factory.rb +2 -4
  209. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +2 -2
  210. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +2 -3
  211. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +2 -2
  212. data/lib/spree/testing_support/factories/zone_factory.rb +3 -3
  213. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  214. data/lib/spree/testing_support/job_helpers.rb +24 -0
  215. data/lib/spree/testing_support/order_walkthrough.rb +1 -1
  216. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  217. data/lib/spree/testing_support/preferences.rb +3 -1
  218. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  219. data/lib/spree/testing_support/translations.rb +25 -0
  220. data/{app/models → lib}/spree/user_class_handle.rb +0 -0
  221. data/lib/tasks/email.rake +3 -2
  222. data/solidus_core.gemspec +8 -5
  223. metadata +97 -374
  224. data/script/rails +0 -10
  225. data/spec/fixtures/thinking-cat.jpg +0 -0
  226. data/spec/helpers/base_helper_spec.rb +0 -168
  227. data/spec/helpers/products_helper_spec.rb +0 -202
  228. data/spec/helpers/taxons_helper_spec.rb +0 -43
  229. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  230. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  231. data/spec/lib/i18n_spec.rb +0 -97
  232. data/spec/lib/search/base_spec.rb +0 -91
  233. data/spec/lib/search/variant_spec.rb +0 -115
  234. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  235. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  236. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  237. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  238. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  239. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  240. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  241. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  242. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  243. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  244. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  245. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  246. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  247. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  248. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  249. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  250. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  251. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  252. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  253. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  254. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  255. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  256. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  257. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  258. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  259. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  260. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  261. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  262. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  263. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  264. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  265. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  266. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  267. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  268. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  269. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  270. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  271. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  272. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  273. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  274. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  275. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  276. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  277. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  278. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  279. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  280. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  281. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  282. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  283. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  284. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  285. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  286. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  287. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  288. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  289. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  290. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  291. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  292. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  293. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  294. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  295. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  296. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  297. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  298. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  299. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  300. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  301. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  302. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  303. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  304. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  305. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  306. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  307. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  308. data/spec/lib/spree/core/version_spec.rb +0 -19
  309. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  310. data/spec/lib/spree/event_spec.rb +0 -130
  311. data/spec/lib/spree/localized_number_spec.rb +0 -45
  312. data/spec/lib/spree/migrations_spec.rb +0 -32
  313. data/spec/lib/spree/money_spec.rb +0 -298
  314. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  315. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  316. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  317. data/spec/lib/tasks/dummy_task.rake +0 -12
  318. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  319. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  320. data/spec/mailers/carton_mailer_spec.rb +0 -44
  321. data/spec/mailers/order_mailer_spec.rb +0 -117
  322. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  323. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  324. data/spec/mailers/test_mailer_spec.rb +0 -13
  325. data/spec/models/spree/ability_spec.rb +0 -279
  326. data/spec/models/spree/address_spec.rb +0 -399
  327. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  328. data/spec/models/spree/adjustment_spec.rb +0 -339
  329. data/spec/models/spree/asset_spec.rb +0 -25
  330. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  331. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  332. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  333. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  334. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  335. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  336. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  337. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  338. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  339. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  340. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  341. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  342. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  343. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  344. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  345. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  346. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  347. data/spec/models/spree/calculator_spec.rb +0 -43
  348. data/spec/models/spree/carton_spec.rb +0 -145
  349. data/spec/models/spree/classification_spec.rb +0 -126
  350. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  351. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  352. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  353. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  354. data/spec/models/spree/country_spec.rb +0 -154
  355. data/spec/models/spree/credit_card_spec.rb +0 -373
  356. data/spec/models/spree/customer_return_spec.rb +0 -294
  357. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  358. data/spec/models/spree/exchange_spec.rb +0 -76
  359. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  360. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  361. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  362. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  363. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  364. data/spec/models/spree/gateway_spec.rb +0 -14
  365. data/spec/models/spree/image_spec.rb +0 -25
  366. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  367. data/spec/models/spree/line_item_spec.rb +0 -240
  368. data/spec/models/spree/option_type_spec.rb +0 -16
  369. data/spec/models/spree/option_value_spec.rb +0 -52
  370. data/spec/models/spree/order/address_spec.rb +0 -52
  371. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  372. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  373. data/spec/models/spree/order/checkout_spec.rb +0 -740
  374. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  375. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  376. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  377. data/spec/models/spree/order/payment_spec.rb +0 -280
  378. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  379. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  380. data/spec/models/spree/order/totals_spec.rb +0 -26
  381. data/spec/models/spree/order/validations_spec.rb +0 -17
  382. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  383. data/spec/models/spree/order_capturing_spec.rb +0 -16
  384. data/spec/models/spree/order_contents_spec.rb +0 -362
  385. data/spec/models/spree/order_inventory_spec.rb +0 -285
  386. data/spec/models/spree/order_merger_spec.rb +0 -162
  387. data/spec/models/spree/order_mutex_spec.rb +0 -89
  388. data/spec/models/spree/order_promotion_spec.rb +0 -33
  389. data/spec/models/spree/order_shipping_spec.rb +0 -247
  390. data/spec/models/spree/order_spec.rb +0 -1687
  391. data/spec/models/spree/order_taxation_spec.rb +0 -128
  392. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  393. data/spec/models/spree/order_updater_spec.rb +0 -556
  394. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  395. data/spec/models/spree/payment_create_spec.rb +0 -195
  396. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  397. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  398. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  399. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  400. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  401. data/spec/models/spree/payment_method_spec.rb +0 -408
  402. data/spec/models/spree/payment_spec.rb +0 -1270
  403. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  404. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  405. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  406. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  407. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  408. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  409. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  410. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  411. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  412. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  413. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  414. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  415. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  416. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  417. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  418. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  419. data/spec/models/spree/preference_spec.rb +0 -79
  420. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  421. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  422. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  423. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  424. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  425. data/spec/models/spree/preferences/store_spec.rb +0 -40
  426. data/spec/models/spree/price_spec.rb +0 -150
  427. data/spec/models/spree/product/scopes_spec.rb +0 -164
  428. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  429. data/spec/models/spree/product_filter_spec.rb +0 -28
  430. data/spec/models/spree/product_property_spec.rb +0 -20
  431. data/spec/models/spree/product_spec.rb +0 -584
  432. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  433. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  434. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  435. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  436. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  437. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  438. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  439. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  440. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  441. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  442. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  443. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  444. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  445. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  446. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  447. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  448. data/spec/models/spree/promotion_action_spec.rb +0 -44
  449. data/spec/models/spree/promotion_category_spec.rb +0 -19
  450. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  451. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  452. data/spec/models/spree/promotion_code_spec.rb +0 -206
  453. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  454. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  455. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  456. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  457. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  458. data/spec/models/spree/promotion_spec.rb +0 -945
  459. data/spec/models/spree/refund_spec.rb +0 -200
  460. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  461. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  462. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  463. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  464. data/spec/models/spree/reimbursement_spec.rb +0 -278
  465. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  466. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  467. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  468. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  469. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  470. data/spec/models/spree/return_authorization_spec.rb +0 -226
  471. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  472. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  473. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  474. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  475. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  476. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  477. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  478. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  479. data/spec/models/spree/return_item_spec.rb +0 -785
  480. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  481. data/spec/models/spree/shipment_spec.rb +0 -914
  482. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  483. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  484. data/spec/models/spree/shipping_method_spec.rb +0 -292
  485. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  486. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  487. data/spec/models/spree/state_spec.rb +0 -43
  488. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  489. data/spec/models/spree/stock/availability_spec.rb +0 -143
  490. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  491. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  492. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  493. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  494. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  495. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  496. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  497. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  498. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  499. data/spec/models/spree/stock/package_spec.rb +0 -182
  500. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  501. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  502. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  503. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  504. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  505. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  506. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  507. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  508. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  509. data/spec/models/spree/stock_item_spec.rb +0 -348
  510. data/spec/models/spree/stock_location_spec.rb +0 -288
  511. data/spec/models/spree/stock_movement_spec.rb +0 -58
  512. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  513. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  514. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  515. data/spec/models/spree/store_credit_spec.rb +0 -900
  516. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  517. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  518. data/spec/models/spree/store_spec.rb +0 -156
  519. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  520. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  521. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  522. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  523. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  524. data/spec/models/spree/tax_category_spec.rb +0 -50
  525. data/spec/models/spree/tax_rate_spec.rb +0 -317
  526. data/spec/models/spree/taxon_spec.rb +0 -197
  527. data/spec/models/spree/taxonomy_spec.rb +0 -15
  528. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  529. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  530. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  531. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  532. data/spec/models/spree/user_spec.rb +0 -247
  533. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  534. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  535. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  536. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  537. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  538. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  539. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  540. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  541. data/spec/models/spree/variant_spec.rb +0 -862
  542. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  543. data/spec/models/spree/wallet_spec.rb +0 -155
  544. data/spec/models/spree/zone_spec.rb +0 -248
  545. data/spec/rails_helper.rb +0 -46
  546. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  547. data/spec/spec_helper.rb +0 -36
  548. data/spec/support/big_decimal.rb +0 -7
  549. data/spec/support/concerns/default_price.rb +0 -44
  550. data/spec/support/concerns/payment_source.rb +0 -66
  551. data/spec/support/concerns/working_factories.rb +0 -15
  552. data/spec/support/dummy_ability.rb +0 -7
@@ -1,133 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::CalculatedAdjustments do
6
- let(:calculator_class) { Spree::Calculator::FlatRate }
7
-
8
- with_model :Calculable, scope: :all do
9
- model do
10
- include Spree::CalculatedAdjustments
11
- end
12
- end
13
-
14
- it "should add has_one :calculator relationship" do
15
- expect(Calculable.reflect_on_all_associations(:has_one).map(&:name)).to include(:calculator)
16
- end
17
-
18
- describe 'initialization' do
19
- context 'with no calculator' do
20
- subject { Calculable.new }
21
-
22
- it 'can be initialized' do
23
- expect(subject.calculator).to be nil
24
- end
25
-
26
- it 'is not valid' do
27
- expect(subject).not_to be_valid
28
- expect(subject.errors[:calculator]).to eq ["can't be blank"]
29
- end
30
- end
31
-
32
- context 'with calculator object' do
33
- subject { Calculable.new(calculator: calculator_class.new) }
34
-
35
- it 'can be initialized' do
36
- expect(subject.calculator).to be_a(calculator_class)
37
- expect(calculator_class.count).to eq 0 # not yet saved
38
- end
39
-
40
- it 'can be created' do
41
- subject.save!
42
- expect(subject.calculator).to be_a(calculator_class)
43
- expect(calculator_class.count).to eq 1 # saved in database
44
- end
45
- end
46
-
47
- context 'with calculator_type' do
48
- subject { Calculable.new(calculator_type: calculator_class.to_s) }
49
-
50
- it 'can be initialized' do
51
- expect(subject.calculator).to be_a(calculator_class)
52
- expect(calculator_class.count).to eq 0 # not yet saved
53
- end
54
-
55
- it 'can be created' do
56
- subject.save!
57
- expect(subject.calculator).to be_a(calculator_class)
58
- expect(calculator_class.count).to eq 1 # saved in database
59
- end
60
- end
61
-
62
- context 'with calculator_type and calculator_attributes' do
63
- subject { Calculable.new(calculator_type: calculator_class.to_s, calculator_attributes: { preferred_amount: 123 }) }
64
-
65
- it 'can be initialized' do
66
- expect(subject.calculator).to be_a(calculator_class)
67
- expect(subject.calculator.preferred_amount).to eq 123
68
- expect(calculator_class.count).to eq 0 # not yet saved
69
- end
70
-
71
- it 'can be created' do
72
- subject.save!
73
- expect(subject.calculator).to be_a(calculator_class)
74
- expect(subject.calculator.preferred_amount).to eq 123
75
- expect(calculator_class.count).to eq 1 # saved in database
76
- end
77
- end
78
- end
79
-
80
- describe 'update' do
81
- subject { Calculable.create!(calculator_type: calculator_class.to_s) }
82
-
83
- it "can update calculator attributes with id" do
84
- subject.update!(calculator_attributes: {
85
- id: subject.calculator.id,
86
- preferred_amount: 123
87
- })
88
- expect(subject.calculator.preferred_amount).to eq(123)
89
- subject.reload
90
- expect(subject.calculator.preferred_amount).to eq(123)
91
- end
92
-
93
- it "can update calculator attributes without id" do
94
- subject.update!(calculator_attributes: {
95
- preferred_amount: 123
96
- })
97
- expect(subject.calculator.preferred_amount).to eq(123)
98
- subject.reload
99
- expect(subject.calculator.preferred_amount).to eq(123)
100
- end
101
-
102
- it "can update both calculator type and attributes" do
103
- subject.update!(calculator_type: 'Spree::Calculator::FlexiRate', calculator_attributes: {
104
- preferred_first_item: 123
105
- })
106
- expect(subject.calculator.class).to eq(Spree::Calculator::FlexiRate)
107
- expect(subject.calculator.preferred_first_item).to eq(123)
108
- subject.reload
109
- expect(subject.calculator.class).to eq(Spree::Calculator::FlexiRate)
110
- expect(subject.calculator.preferred_first_item).to eq(123)
111
- end
112
- end
113
-
114
- describe '#calculator_type=' do
115
- subject { Calculable.new }
116
-
117
- let(:calculator_subclass) { Spree::Calculator::Shipping::FlatRate }
118
- let(:calculator_superclass) { Spree::ShippingCalculator }
119
-
120
- before(:each) do
121
- subject.calculator_type = calculator_subclass.to_s
122
- end
123
-
124
- it 'sets calculator type' do
125
- expect(subject.calculator_type).to eq(calculator_subclass.to_s)
126
- end
127
-
128
- it 'switches from calculator subclass to calculator superclass' do
129
- subject.calculator_type = calculator_superclass.to_s
130
- expect(subject.calculator_type).to eq(calculator_superclass.to_s)
131
- end
132
- end
133
- end
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
- require 'spree/i18n'
5
-
6
- RSpec.describe "i18n" do
7
- before do
8
- # This reload avoids an issue with I18n.available_locales being cached
9
- I18n.reload!
10
-
11
- I18n.backend.store_translations(:en,
12
- {
13
- spree: {
14
- i18n: {
15
- this_file_language: "English"
16
- },
17
- foo: "bar",
18
- bar: {
19
- foo: "bar within bar scope",
20
- invalid: nil,
21
- legacy_translation: "back in the day..."
22
- },
23
- invalid: nil,
24
- legacy_translation: "back in the day..."
25
- }
26
- })
27
- end
28
- after do
29
- I18n.reload!
30
- end
31
-
32
- it "translates within the spree scope" do
33
- expect(Spree::Deprecation).to receive(:warn).twice
34
- expect(Spree.t(:foo)).to eql("bar")
35
- expect(Spree.translate(:foo)).to eql("bar")
36
- end
37
-
38
- it "prepends a string scope" do
39
- expect(Spree::Deprecation).to receive(:warn)
40
- expect(Spree.t(:foo, scope: "bar")).to eql("bar within bar scope")
41
- end
42
-
43
- it "prepends to an array scope" do
44
- expect(Spree::Deprecation).to receive(:warn)
45
- expect(Spree.t(:foo, scope: ["bar"])).to eql("bar within bar scope")
46
- end
47
-
48
- it "returns two translations" do
49
- expect(Spree::Deprecation).to receive(:warn)
50
- expect(Spree.t([:foo, 'bar.foo'])).to eql(["bar", "bar within bar scope"])
51
- end
52
-
53
- it "returns reasonable string for missing translations" do
54
- expect(Spree::Deprecation).to receive(:warn)
55
- expect(Spree.t(:missing_entry)).to include("<span")
56
- end
57
-
58
- it "should have a Spree::I18N_GENERIC_PLURAL constant" do
59
- expect(Spree::I18N_GENERIC_PLURAL).to eq 2.1
60
- end
61
-
62
- describe "i18n_available_locales" do
63
- it "should only return :en" do
64
- expect(Spree.i18n_available_locales).to eq([:en])
65
- end
66
-
67
- context 'with unprefixed translations in another locale' do
68
- before do
69
- I18n.backend.store_translations(:fr, { cheese: "fromage" })
70
- end
71
-
72
- it "should only return :en" do
73
- expect(Spree.i18n_available_locales).to eq([:en])
74
- end
75
- end
76
-
77
- context 'with spree-prefixed translations in another locale' do
78
- before do
79
- I18n.backend.store_translations(:fr, spree: { cheese: "fromage" })
80
- end
81
-
82
- it "should return :en and :fr" do
83
- expect(Spree.i18n_available_locales).to eq([:en])
84
- end
85
- end
86
-
87
- context 'with specific desired key' do
88
- before do
89
- I18n.backend.store_translations(:fr, spree: { i18n: { this_file_language: "Français" } })
90
- end
91
-
92
- it "should return :en and :fr" do
93
- expect(Spree.i18n_available_locales).to eq([:en, :fr])
94
- end
95
- end
96
- end
97
- end
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
- require 'spree/core/product_filters'
5
-
6
- RSpec.describe Spree::Core::Search::Base do
7
- before do
8
- include Spree::Core::ProductFilters
9
- @taxon = create(:taxon, name: "Ruby on Rails")
10
-
11
- @product1 = create(:product, name: "RoR Mug", price: 9.00)
12
- @product1.taxons << @taxon
13
- @product2 = create(:product, name: "RoR Shirt", price: 11.00)
14
- end
15
-
16
- it "returns all products by default" do
17
- params = { per_page: "" }
18
- searcher = Spree::Core::Search::Base.new(params)
19
- expect(searcher.retrieve_products.count).to eq(2)
20
- end
21
-
22
- context "when include_images is included in the initalization params" do
23
- let(:params) { { include_images: true, keyword: @product1.name, taxon: @taxon.id } }
24
- subject { described_class.new(params).retrieve_products }
25
-
26
- before do
27
- @product1.master.images.create(attachment_file_name: "Test", position: 2)
28
- @product1.master.images.create(attachment_file_name: "Test1", position: 1)
29
- @product1.reload
30
- end
31
-
32
- it "returns images in correct order" do
33
- expect(subject.first).to eq @product1
34
- expect(subject.first.images).to eq @product1.master.images
35
- end
36
- end
37
-
38
- it "switches to next page according to the page parameter" do
39
- @product3 = create(:product, name: "RoR Pants", price: 14.00)
40
-
41
- params = { per_page: "2" }
42
- searcher = Spree::Core::Search::Base.new(params)
43
- expect(searcher.retrieve_products.count).to eq(2)
44
-
45
- params[:page] = "2"
46
- searcher = Spree::Core::Search::Base.new(params)
47
- expect(searcher.retrieve_products.count).to eq(1)
48
- end
49
-
50
- it "maps search params to named scopes" do
51
- params = { per_page: "",
52
- search: { "price_range_any" => ["Under $10.00"] } }
53
- searcher = Spree::Core::Search::Base.new(params)
54
- expect(searcher.send(:get_base_scope).to_sql).to match /<= 10/
55
- expect(searcher.retrieve_products.count).to eq(1)
56
- end
57
-
58
- it "maps multiple price_range_any filters" do
59
- params = { per_page: "",
60
- search: { "price_range_any" => ["Under $10.00", "$10.00 - $15.00"] } }
61
- searcher = Spree::Core::Search::Base.new(params)
62
- expect(searcher.send(:get_base_scope).to_sql).to match /<= 10/
63
- if Rails.gem_version >= Gem::Version.new('6.0.0')
64
- expect(searcher.send(:get_base_scope).to_sql).to match /between 10\.0 and 15\.0/i
65
- else
66
- expect(searcher.send(:get_base_scope).to_sql).to match /between 10 and 15/i
67
- end
68
- expect(searcher.retrieve_products.count).to eq(2)
69
- end
70
-
71
- it "uses ransack if scope not found" do
72
- params = { per_page: "",
73
- search: { "name_not_cont" => "Shirt" } }
74
- searcher = Spree::Core::Search::Base.new(params)
75
- expect(searcher.retrieve_products.count).to eq(1)
76
- end
77
-
78
- it "accepts a current user" do
79
- user = double
80
- searcher = Spree::Core::Search::Base.new({})
81
- searcher.current_user = user
82
- expect(searcher.current_user).to eql(user)
83
- end
84
-
85
- it "finds products in alternate currencies" do
86
- create(:price, currency: 'EUR', variant: @product1.master)
87
- searcher = Spree::Core::Search::Base.new({})
88
- searcher.pricing_options = Spree::Config.pricing_options_class.new(currency: 'EUR')
89
- expect(searcher.retrieve_products).to eq([@product1])
90
- end
91
- end
@@ -1,115 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- module Spree
6
- RSpec.describe Core::Search::Variant do
7
- def assert_found(query_string, variant)
8
- expect(described_class.new(query_string).results).to include variant
9
- end
10
-
11
- def refute_found(query_string, variant)
12
- expect(described_class.new(query_string).results).not_to include variant
13
- end
14
-
15
- let(:product) { FactoryBot.create(:product, name: "My Special Product", slug: "my-special-product") }
16
- let!(:variant) { FactoryBot.create(:variant, product: product, sku: "abc-123") }
17
-
18
- context "blank string" do
19
- it { assert_found(nil, variant) }
20
- it { assert_found("", variant) }
21
- end
22
-
23
- context "by sku" do
24
- it { assert_found("abc-123", variant) }
25
- it { assert_found("abc-1", variant) }
26
- it { assert_found("aBc-12", variant) }
27
- it { refute_found("bca", variant) }
28
- end
29
-
30
- context "by product" do
31
- it { assert_found("My Special Product", variant) }
32
- it { assert_found("My Spec", variant) }
33
- it { assert_found("my spec", variant) }
34
- it { assert_found("my-special-product", variant) }
35
- it { assert_found("my-spec", variant) }
36
- it { assert_found("mY-sPec", variant) }
37
- it { assert_found("My Product", variant) }
38
- it { refute_found("My House", variant) }
39
- it { refute_found("my-product", variant) }
40
- end
41
-
42
- context "by product + options" do
43
- before do
44
- variant.option_values << create(:option_value, presentation: "Robin's egg", name: "blue")
45
- variant.option_values << create(:option_value, presentation: 'Slim')
46
- variant.option_values << create(:option_value, presentation: '30')
47
- end
48
- it { assert_found("My Spec blue", variant) }
49
- it { assert_found("My Spec robin egg Slim", variant) }
50
- it { assert_found("My Spec 30 slim", variant) }
51
- it { refute_found("My Spec red slim", variant) }
52
- it { refute_found("foo product blue slim", variant) }
53
- end
54
-
55
- context "custom scope" do
56
- it "takes into account a passed in scope" do
57
- variant.stock_items.first.set_count_on_hand(10)
58
- expect(
59
- described_class.new(variant.sku, scope: Spree::Variant.in_stock).results
60
- ).to include variant
61
-
62
- variant.stock_items.each { |si| si.set_count_on_hand(0) }
63
- expect(
64
- described_class.new(variant.sku, scope: Spree::Variant.in_stock).results
65
- ).not_to include variant
66
- end
67
- end
68
-
69
- context "custom search configuration" do
70
- context "removing a search query" do
71
- around do |example|
72
- search_terms = described_class.search_terms
73
- described_class.search_terms -= [:sku_cont]
74
- example.run
75
- described_class.search_terms = search_terms
76
- end
77
-
78
- it { refute_found("abc-123", variant) }
79
- end
80
-
81
- context "adding a search query" do
82
- around do |example|
83
- search_terms = described_class.search_terms
84
- described_class.search_terms += [:weight_eq]
85
- example.run
86
- described_class.search_terms = search_terms
87
- end
88
- before { variant.update!(weight: 5000) }
89
-
90
- it { assert_found("5000", variant) }
91
- end
92
- end
93
-
94
- describe '#search_terms' do
95
- # Only search by SKU if the search word is a number
96
- class NumericSkuSearcher < Core::Search::Variant
97
- protected
98
-
99
- def search_terms(word)
100
- if word =~ /\A\d+\z/
101
- super
102
- else
103
- super - [:sku_cont]
104
- end
105
- end
106
- end
107
-
108
- let!(:numeric_sku_variant) { FactoryBot.create(:variant, product: product, sku: "123") }
109
- let!(:non_numeric_sku_variant) { FactoryBot.create(:variant, product: product, sku: "abc") }
110
-
111
- it { expect(NumericSkuSearcher.new('123').results).to include numeric_sku_variant }
112
- it { expect(NumericSkuSearcher.new('abc').results).not_to include non_numeric_sku_variant }
113
- end
114
- end
115
- end
@@ -1,140 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::AppConfiguration do
6
- let(:prefs) { Spree::Config }
7
-
8
- around do |example|
9
- with_unfrozen_spree_preference_store do
10
- example.run
11
- end
12
- end
13
-
14
- it "should be available from the environment" do
15
- prefs.layout = "my/layout"
16
- expect(prefs.layout).to eq "my/layout"
17
- end
18
-
19
- it "should be available as Spree::Config for legacy access" do
20
- expect(Spree::Config).to be_a Spree::AppConfiguration
21
- end
22
-
23
- it "uses base searcher class by default" do
24
- expect(prefs.searcher_class).to eq Spree::Core::Search::Base
25
- end
26
-
27
- it "uses variant search class by default" do
28
- expect(prefs.variant_search_class).to eq Spree::Core::Search::Variant
29
- end
30
-
31
- it "uses variant price selector class by default" do
32
- expect(prefs.variant_price_selector_class).to eq Spree::Variant::PriceSelector
33
- end
34
-
35
- it "has a getter for the pricing options class provided by the variant price selector class" do
36
- expect(prefs.pricing_options_class).to eq Spree::Variant::PriceSelector.pricing_options_class
37
- end
38
-
39
- describe '#stock' do
40
- subject { prefs.stock }
41
- it { is_expected.to be_a Spree::Core::StockConfiguration }
42
- end
43
-
44
- describe '@default_country_iso_code' do
45
- it 'is the USA by default' do
46
- expect(prefs[:default_country_iso]).to eq("US")
47
- end
48
- end
49
-
50
- describe '@admin_vat_country_iso' do
51
- it 'is `nil` by default' do
52
- expect(prefs[:admin_vat_country_iso]).to eq(nil)
53
- end
54
- end
55
-
56
- describe '#environment' do
57
- class DummyClass; end;
58
-
59
- subject(:environment) { prefs.environment }
60
- it { is_expected.to be_a Spree::Core::Environment }
61
-
62
- shared_examples "working preferences set" do
63
- it "allows adding new items" do
64
- preferences_set << DummyClass
65
- expect(preferences_set).to include DummyClass
66
- preferences_set.delete DummyClass
67
- end
68
- end
69
-
70
- context '.payment_methods' do
71
- subject(:preferences_set) { environment.payment_methods }
72
- it_should_behave_like "working preferences set"
73
- end
74
-
75
- context '.stock_splitters' do
76
- subject(:preferences_set) { environment.stock_splitters }
77
- it_should_behave_like "working preferences set"
78
- end
79
-
80
- context '.calculators' do
81
- subject(:calculators) { environment.calculators }
82
- it { is_expected.to be_a Spree::Core::Environment::Calculators }
83
-
84
- context '.calculators.shipping_methods' do
85
- subject(:preferences_set) { calculators.shipping_methods }
86
- it_should_behave_like "working preferences set"
87
- end
88
-
89
- context '.calculators.tax_rates' do
90
- subject(:preferences_set) { calculators.tax_rates }
91
- it_should_behave_like "working preferences set"
92
- end
93
-
94
- context '.calculators.promotion_actions_create_adjustments' do
95
- subject(:preferences_set) { calculators.promotion_actions_create_adjustments }
96
- it_should_behave_like "working preferences set"
97
- end
98
-
99
- context '.calculators.promotion_actions_create_item_adjustments' do
100
- subject(:preferences_set) { calculators.promotion_actions_create_item_adjustments }
101
- it_should_behave_like "working preferences set"
102
- end
103
-
104
- context '.calculators.promotion_actions_create_quantity_adjustments' do
105
- subject(:preferences_set) { calculators.promotion_actions_create_quantity_adjustments }
106
- it_should_behave_like "working preferences set"
107
- end
108
- end
109
-
110
- context '.promotions' do
111
- subject(:promotions) { environment.promotions }
112
- it { is_expected.to be_a Spree::Core::Environment::Promotions }
113
-
114
- context '.promotions.rules' do
115
- subject(:preferences_set) { promotions.rules }
116
- it_should_behave_like "working preferences set"
117
- end
118
-
119
- context '.promotions.actions' do
120
- subject(:preferences_set) { promotions.actions }
121
- it_should_behave_like "working preferences set"
122
- end
123
-
124
- context '.promotions.shipping_actions' do
125
- subject(:preferences_set) { promotions.shipping_actions }
126
- it_should_behave_like "working preferences set"
127
- end
128
- end
129
- end
130
-
131
- it 'has a default admin VAT location with nil values by default' do
132
- expect(prefs.admin_vat_location).to eq(Spree::Tax::TaxLocation.new)
133
- expect(prefs.admin_vat_location.state_id).to eq(nil)
134
- expect(prefs.admin_vat_location.country_id).to eq(nil)
135
- end
136
-
137
- it 'has default Event adapter' do
138
- expect(prefs.events.adapter).to eq Spree::Event::Adapters::ActiveSupportNotifications
139
- end
140
- end