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,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PermissionSets::RestrictedStockManagement do
6
- let(:ability) { Spree::Ability.new(user) }
7
- let(:user) { create :user }
8
-
9
- subject { ability }
10
-
11
- let!(:variant) { create :variant }
12
-
13
- let(:sl1) { create :stock_location, active: false }
14
- let(:sl2) { create :stock_location, active: false }
15
-
16
- let(:item1) { variant.stock_items.where(stock_location_id: sl1.id).first }
17
- let(:item2) { variant.stock_items.where(stock_location_id: sl2.id).first }
18
-
19
- before do
20
- user.stock_locations << sl1
21
- end
22
-
23
- context "when activated" do
24
- before do
25
- described_class.new(ability).activate!
26
- end
27
-
28
- it { is_expected.to be_able_to(:display, sl1) }
29
- it { is_expected.to_not be_able_to(:display, sl2) }
30
-
31
- it { is_expected.to be_able_to(:manage, item1) }
32
- it { is_expected.to_not be_able_to(:manage, item2) }
33
- end
34
-
35
- context "when not activated" do
36
- it { is_expected.to_not be_able_to(:display, sl1) }
37
- it { is_expected.to_not be_able_to(:display, sl2) }
38
-
39
- it { is_expected.to_not be_able_to(:manage, item1) }
40
- it { is_expected.to_not be_able_to(:manage, item2) }
41
- end
42
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PermissionSets::StockDisplay do
6
- let(:ability) { DummyAbility.new }
7
-
8
- subject { ability }
9
-
10
- context "when activated" do
11
- before do
12
- described_class.new(ability).activate!
13
- end
14
-
15
- it { is_expected.to be_able_to(:display, Spree::StockItem) }
16
- it { is_expected.to be_able_to(:admin, Spree::StockItem) }
17
- it { is_expected.to be_able_to(:display, Spree::StockLocation) }
18
- end
19
-
20
- context "when not activated" do
21
- it { is_expected.not_to be_able_to(:display, Spree::StockItem) }
22
- it { is_expected.not_to be_able_to(:admin, Spree::StockItem) }
23
- it { is_expected.not_to be_able_to(:display, Spree::StockLocation) }
24
- end
25
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PermissionSets::StockManagement do
6
- let(:ability) { DummyAbility.new }
7
-
8
- subject { ability }
9
-
10
- context "when activated" do
11
- before do
12
- described_class.new(ability).activate!
13
- end
14
-
15
- it { is_expected.to be_able_to(:manage, Spree::StockItem) }
16
- it { is_expected.to be_able_to(:display, Spree::StockLocation) }
17
- end
18
-
19
- context "when not activated" do
20
- it { is_expected.not_to be_able_to(:manage, Spree::StockItem) }
21
- it { is_expected.not_to be_able_to(:display, Spree::StockLocation) }
22
- end
23
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PermissionSets::UserDisplay do
6
- let(:ability) { DummyAbility.new }
7
-
8
- subject { ability }
9
-
10
- context "when activated" do
11
- before do
12
- described_class.new(ability).activate!
13
- end
14
-
15
- it { is_expected.to be_able_to(:display, Spree.user_class) }
16
- it { is_expected.to be_able_to(:admin, Spree.user_class) }
17
- it { is_expected.to be_able_to(:edit, Spree.user_class) }
18
- it { is_expected.to be_able_to(:addresses, Spree.user_class) }
19
- it { is_expected.to be_able_to(:orders, Spree.user_class) }
20
- it { is_expected.to be_able_to(:items, Spree.user_class) }
21
- it { is_expected.to be_able_to(:display, Spree::StoreCredit) }
22
- it { is_expected.to be_able_to(:admin, Spree::StoreCredit) }
23
- it { is_expected.to be_able_to(:display, Spree::Role) }
24
- it { is_expected.not_to be_able_to(:delete, Spree.user_class) }
25
- it { is_expected.not_to be_able_to(:destroy, Spree.user_class) }
26
- end
27
-
28
- context "when not activated" do
29
- it { is_expected.not_to be_able_to(:display, Spree.user_class) }
30
- it { is_expected.not_to be_able_to(:admin, Spree.user_class) }
31
- it { is_expected.not_to be_able_to(:edit, Spree.user_class) }
32
- it { is_expected.not_to be_able_to(:addresses, Spree.user_class) }
33
- it { is_expected.not_to be_able_to(:orders, Spree.user_class) }
34
- it { is_expected.not_to be_able_to(:items, Spree.user_class) }
35
- it { is_expected.not_to be_able_to(:display, Spree::StoreCredit) }
36
- it { is_expected.not_to be_able_to(:admin, Spree::StoreCredit) }
37
- it { is_expected.not_to be_able_to(:display, Spree::Role) }
38
- end
39
- end
@@ -1,58 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::PermissionSets::UserManagement do
6
- let(:ability) { DummyAbility.new }
7
-
8
- subject { ability }
9
-
10
- context "when activated" do
11
- before do
12
- described_class.new(ability).activate!
13
- end
14
-
15
- it { is_expected.to be_able_to(:admin, Spree.user_class) }
16
- it { is_expected.to be_able_to(:display, Spree.user_class) }
17
- it { is_expected.to be_able_to(:create, Spree.user_class) }
18
- it { is_expected.to be_able_to(:update, Spree.user_class) }
19
- it { is_expected.to be_able_to(:save_in_address_book, Spree.user_class) }
20
- it { is_expected.to be_able_to(:remove_from_address_book, Spree.user_class) }
21
- it { is_expected.to be_able_to(:addresses, Spree.user_class) }
22
- it { is_expected.to be_able_to(:orders, Spree.user_class) }
23
- it { is_expected.to be_able_to(:items, Spree.user_class) }
24
-
25
- context 'when the user does not have a role' do
26
- let(:user) { create(:user) }
27
- it { is_expected.to be_able_to(:update_email, user) }
28
- it { is_expected.to be_able_to(:update_password, user) }
29
- end
30
-
31
- context 'when the user has a role' do
32
- let(:user) { create(:user, spree_roles: [create(:role)]) }
33
- it { is_expected.not_to be_able_to(:update_email, user) }
34
- it { is_expected.not_to be_able_to(:update_password, user) }
35
- end
36
-
37
- it { is_expected.not_to be_able_to(:delete, Spree.user_class) }
38
- it { is_expected.not_to be_able_to(:destroy, Spree.user_class) }
39
-
40
- it { is_expected.to be_able_to(:manage, Spree::StoreCredit) }
41
- it { is_expected.to be_able_to(:display, Spree::Role) }
42
- end
43
-
44
- context "when not activated" do
45
- it { is_expected.not_to be_able_to(:manage, Spree.user_class) }
46
- it { is_expected.not_to be_able_to(:delete, Spree.user_class) }
47
- it { is_expected.not_to be_able_to(:destroy, Spree.user_class) }
48
- it { is_expected.not_to be_able_to(:update, Spree.user_class) }
49
- it { is_expected.not_to be_able_to(:save_in_address_book, Spree.user_class) }
50
- it { is_expected.not_to be_able_to(:remove_from_address_book, Spree.user_class) }
51
- it { is_expected.not_to be_able_to(:addresses, Spree.user_class) }
52
- it { is_expected.not_to be_able_to(:orders, Spree.user_class) }
53
- it { is_expected.not_to be_able_to(:items, Spree.user_class) }
54
- it { is_expected.not_to be_able_to(:destroy, Spree.user_class) }
55
- it { is_expected.not_to be_able_to(:manage, Spree::StoreCredit) }
56
- it { is_expected.not_to be_able_to(:display, Spree::Role) }
57
- end
58
- end
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Preference, type: :model do
6
- it "should require a key" do
7
- @preference = Spree::Preference.new
8
- @preference.key = :test
9
- @preference.value = true
10
- expect(@preference).to be_valid
11
- end
12
-
13
- describe "type coversion for values" do
14
- def round_trip_preference(key, value)
15
- element = Spree::Preference.new
16
- element.value = value
17
- element.key = key
18
- element.save
19
-
20
- Spree::Preference.find_by(key: key)
21
- end
22
-
23
- it ":boolean" do
24
- value = true
25
- key = "boolean_key"
26
- pref = round_trip_preference(key, value)
27
- expect(pref.value).to eq value
28
- end
29
-
30
- it "false :boolean" do
31
- value = false
32
- key = "boolean_key"
33
- pref = round_trip_preference(key, value)
34
- expect(pref.value).to eq value
35
- end
36
-
37
- it ":integer" do
38
- value = 10
39
- key = "integer_key"
40
- pref = round_trip_preference(key, value)
41
- expect(pref.value).to eq value
42
- end
43
-
44
- it ":decimal" do
45
- value = 1.5
46
- key = "decimal_key"
47
- pref = round_trip_preference(key, value)
48
- expect(pref.value).to eq value
49
- end
50
-
51
- it ":string" do
52
- value = "This is a string"
53
- key = "string_key"
54
- pref = round_trip_preference(key, value)
55
- expect(pref.value).to eq value
56
- end
57
-
58
- it ":text" do
59
- value = "This is a string stored as text"
60
- key = "text_key"
61
- pref = round_trip_preference(key, value)
62
- expect(pref.value).to eq value
63
- end
64
-
65
- it ":password" do
66
- value = "This is a password"
67
- key = "password_key"
68
- pref = round_trip_preference(key, value)
69
- expect(pref.value).to eq value
70
- end
71
-
72
- it ":any" do
73
- value = [1, 2]
74
- key = "any_key"
75
- pref = round_trip_preference(key, value)
76
- expect(pref.value).to eq value
77
- end
78
- end
79
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Preferences::Configuration, type: :model do
6
- before :all do
7
- class AppConfig < Spree::Preferences::Configuration
8
- preference :color, :string, default: :blue
9
- end
10
- @config = AppConfig.new
11
- end
12
-
13
- it "has named methods to access preferences" do
14
- @config.color = 'orange'
15
- expect(@config.color).to eq 'orange'
16
- end
17
-
18
- it "uses [ ] to access preferences" do
19
- @config[:color] = 'red'
20
- expect(@config[:color]).to eq 'red'
21
- end
22
-
23
- it "uses set/get to access preferences" do
24
- @config.set(color: 'green')
25
- expect(@config.get(:color)).to eq 'green'
26
- end
27
- end
@@ -1,334 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Preferences::Preferable, type: :model do
6
- before :all do
7
- class A
8
- include Spree::Preferences::Preferable
9
- attr_reader :id
10
-
11
- def initialize
12
- @id = rand(999)
13
- end
14
-
15
- def preferences
16
- @preferences ||= default_preferences
17
- end
18
-
19
- preference :color, :string, default: 'green'
20
- end
21
-
22
- class B < A
23
- preference :flavor, :string
24
- end
25
- end
26
-
27
- before :each do
28
- @a = A.new
29
- @b = B.new
30
- end
31
-
32
- describe "preference definitions" do
33
- it "parent should not see child definitions" do
34
- expect(@a.has_preference?(:color)).to be true
35
- expect(@a.has_preference?(:flavor)).not_to be true
36
- end
37
-
38
- it "child should have parent and own definitions" do
39
- expect(@b.has_preference?(:color)).to be true
40
- expect(@b.has_preference?(:flavor)).to be true
41
- end
42
-
43
- it "instances have defaults" do
44
- expect(@a.preferred_color).to eq 'green'
45
- expect(@b.preferred_color).to eq 'green'
46
- expect(@b.preferred_flavor).to be_nil
47
- end
48
-
49
- it "can be asked if it has a preference definition" do
50
- expect(@a.has_preference?(:color)).to be true
51
- expect(@a.has_preference?(:bad)).to be false
52
- end
53
-
54
- it "can be asked and raises" do
55
- expect {
56
- @a.has_preference! :flavor
57
- }.to raise_error(NoMethodError, "flavor preference not defined")
58
- end
59
-
60
- it "has a type" do
61
- expect(@a.preferred_color_type).to eq :string
62
- expect(@a.preference_type(:color)).to eq :string
63
- end
64
-
65
- it "has a default" do
66
- expect(@a.preferred_color_default).to eq 'green'
67
- expect(@a.preference_default(:color)).to eq 'green'
68
- end
69
-
70
- it "raises if not defined" do
71
- expect {
72
- @a.get_preference :flavor
73
- }.to raise_error(NoMethodError, "flavor preference not defined")
74
- end
75
- end
76
-
77
- describe "preference access" do
78
- it "handles ghost methods for preferences" do
79
- @a.preferred_color = 'blue'
80
- expect(@a.preferred_color).to eq 'blue'
81
- end
82
-
83
- it "parent and child instances have their own prefs" do
84
- @a.preferred_color = 'red'
85
- @b.preferred_color = 'blue'
86
-
87
- expect(@a.preferred_color).to eq 'red'
88
- expect(@b.preferred_color).to eq 'blue'
89
- end
90
-
91
- it "raises when preference not defined" do
92
- expect {
93
- @a.set_preference(:bad, :bone)
94
- }.to raise_exception(NoMethodError, "bad preference not defined")
95
- end
96
-
97
- it "builds a hash of preferences" do
98
- @b.preferred_flavor = :strawberry
99
- expect(@b.preferences[:flavor]).to eq 'strawberry'
100
- expect(@b.preferences[:color]).to eq 'green' # default from A
101
- end
102
-
103
- it "builds a hash of preference defaults" do
104
- expect(@b.default_preferences).to eq({
105
- flavor: nil,
106
- color: 'green'
107
- })
108
- end
109
-
110
- describe '#admin_form_preference_names' do
111
- subject do
112
- ComplexPreferableClass.new.admin_form_preference_names
113
- end
114
-
115
- before do
116
- class ComplexPreferableClass
117
- include Spree::Preferences::Preferable
118
- preference :name, :string
119
- preference :password, :password
120
- preference :mapping, :hash
121
- preference :recipients, :array
122
- end
123
- end
124
-
125
- it "returns an array of preference names excluding preferences not presentable as form field" do
126
- is_expected.to contain_exactly(:name, :password)
127
- end
128
-
129
- context 'with overwritten allowed_admin_form_preference_types class method' do
130
- subject do
131
- ComplexOverwrittenPreferableClass.new.admin_form_preference_names
132
- end
133
-
134
- before do
135
- class ComplexOverwrittenPreferableClass
136
- include Spree::Preferences::Preferable
137
- preference :name, :string
138
- preference :password, :password
139
- preference :mapping, :hash
140
- preference :recipients, :array
141
-
142
- def self.allowed_admin_form_preference_types
143
- %i(string password hash array)
144
- end
145
- end
146
- end
147
-
148
- it 'returns these types instead' do
149
- is_expected.to contain_exactly(:name, :password, :mapping, :recipients)
150
- end
151
- end
152
- end
153
-
154
- context "converts integer preferences to integer values" do
155
- before do
156
- A.preference :is_integer, :integer
157
- end
158
-
159
- it "with strings" do
160
- @a.set_preference(:is_integer, '3')
161
- expect(@a.preferences[:is_integer]).to eq(3)
162
-
163
- @a.set_preference(:is_integer, '')
164
- expect(@a.preferences[:is_integer]).to eq(0)
165
- end
166
-
167
- it 'does not convert if value is nil' do
168
- @a.set_preference(:is_integer, nil)
169
- expect(@a.preferences[:is_integer]).to be_nil
170
- end
171
- end
172
-
173
- context "converts decimal preferences to BigDecimal values" do
174
- before do
175
- A.preference :if_decimal, :decimal
176
- end
177
-
178
- it "returns a BigDecimal" do
179
- @a.set_preference(:if_decimal, 3.3)
180
- expect(@a.preferences[:if_decimal].class).to eq(BigDecimal)
181
- end
182
-
183
- it "with strings" do
184
- @a.set_preference(:if_decimal, '3.3')
185
- expect(@a.preferences[:if_decimal]).to eq(3.3)
186
-
187
- @a.set_preference(:if_decimal, '')
188
- expect(@a.preferences[:if_decimal]).to eq(0.0)
189
- end
190
- end
191
-
192
- context "converts boolean preferences to boolean values" do
193
- before do
194
- A.preference :is_boolean, :boolean, default: true
195
- end
196
-
197
- it "with strings" do
198
- @a.set_preference(:is_boolean, '0')
199
- expect(@a.preferences[:is_boolean]).to be false
200
- @a.set_preference(:is_boolean, 'f')
201
- expect(@a.preferences[:is_boolean]).to be false
202
- @a.set_preference(:is_boolean, 't')
203
- expect(@a.preferences[:is_boolean]).to be true
204
- end
205
-
206
- it "with integers" do
207
- @a.set_preference(:is_boolean, 0)
208
- expect(@a.preferences[:is_boolean]).to be false
209
- @a.set_preference(:is_boolean, 1)
210
- expect(@a.preferences[:is_boolean]).to be true
211
- end
212
-
213
- it "with an empty string" do
214
- @a.set_preference(:is_boolean, '')
215
- expect(@a.preferences[:is_boolean]).to be false
216
- end
217
-
218
- it "with an empty hash" do
219
- @a.set_preference(:is_boolean, [])
220
- expect(@a.preferences[:is_boolean]).to be false
221
- end
222
- end
223
-
224
- context "converts array preferences to array values" do
225
- before do
226
- A.preference :is_array, :array, default: []
227
- end
228
-
229
- it "with arrays" do
230
- @a.set_preference(:is_array, [])
231
- expect(@a.preferences[:is_array]).to eq []
232
- end
233
- end
234
-
235
- context "converts hash preferences to hash values" do
236
- before do
237
- A.preference :is_hash, :hash, default: {}
238
- end
239
-
240
- it "with hash" do
241
- @a.set_preference(:is_hash, {})
242
- expect(@a.preferences[:is_hash]).to be_is_a(Hash)
243
- end
244
-
245
- it "with hash and keys are integers" do
246
- @a.set_preference(:is_hash, { 1 => 2, 3 => 4 })
247
- expect(@a.preferences[:is_hash]).to eql({ 1 => 2, 3 => 4 })
248
- end
249
- end
250
-
251
- context "converts any preferences to any values" do
252
- before do
253
- A.preference :product_ids, :any, default: []
254
- A.preference :product_attributes, :any, default: {}
255
- end
256
-
257
- it "with array" do
258
- expect(@a.preferences[:product_ids]).to eq([])
259
- @a.set_preference(:product_ids, [1, 2])
260
- expect(@a.preferences[:product_ids]).to eq([1, 2])
261
- end
262
-
263
- it "with hash" do
264
- expect(@a.preferences[:product_attributes]).to eq({})
265
- @a.set_preference(:product_attributes, { id: 1, name: 2 })
266
- expect(@a.preferences[:product_attributes]).to eq({ id: 1, name: 2 })
267
- end
268
- end
269
- end
270
-
271
- describe "persisted preferables" do
272
- before(:all) do
273
- class CreatePrefTest < ActiveRecord::Migration[4.2]
274
- def self.up
275
- create_table :pref_tests do |item|
276
- item.string :col
277
- item.text :preferences
278
- end
279
- end
280
-
281
- def self.down
282
- drop_table :pref_tests
283
- end
284
- end
285
-
286
- @migration_verbosity = ActiveRecord::Migration[4.2].verbose
287
- ActiveRecord::Migration[4.2].verbose = false
288
- CreatePrefTest.migrate(:up)
289
-
290
- class PrefTest < Spree::Base
291
- preference :pref_test_pref, :string, default: 'abc'
292
- preference :pref_test_any, :any, default: []
293
- end
294
- end
295
-
296
- after(:all) do
297
- CreatePrefTest.migrate(:down)
298
- ActiveRecord::Migration[4.2].verbose = @migration_verbosity
299
- end
300
-
301
- before(:each) do
302
- @pt = PrefTest.create
303
- end
304
-
305
- describe "pending preferences for new activerecord objects" do
306
- it "saves preferences after record is saved" do
307
- pr = PrefTest.new
308
- pr.set_preference(:pref_test_pref, 'XXX')
309
- expect(pr.get_preference(:pref_test_pref)).to eq('XXX')
310
- pr.save!
311
- expect(pr.get_preference(:pref_test_pref)).to eq('XXX')
312
- end
313
-
314
- it "saves preferences for serialized object" do
315
- pr = PrefTest.new
316
- pr.set_preference(:pref_test_any, [1, 2])
317
- expect(pr.get_preference(:pref_test_any)).to eq([1, 2])
318
- pr.save!
319
- expect(pr.get_preference(:pref_test_any)).to eq([1, 2])
320
- end
321
- end
322
-
323
- it "clear preferences when record is deleted" do
324
- @pt.save!
325
- @pt.preferred_pref_test_pref = 'lmn'
326
- @pt.save!
327
- @pt.destroy
328
- @pt1 = PrefTest.new(col: 'aaaa')
329
- @pt1.id = @pt.id
330
- @pt1.save!
331
- expect(@pt1.get_preference(:pref_test_pref)).to eq('abc')
332
- end
333
- end
334
- end