solidus_core 2.10.5 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (618) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +0 -22
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/helpers/spree/store_helper.rb +0 -11
  5. data/app/mailers/spree/base_mailer.rb +4 -0
  6. data/app/mailers/spree/carton_mailer.rb +1 -5
  7. data/app/mailers/spree/order_mailer.rb +1 -1
  8. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +71 -0
  9. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  10. data/app/models/concerns/spree/active_storage_adapter.rb +118 -0
  11. data/app/models/concerns/spree/adjustment_source.rb +0 -15
  12. data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
  13. data/app/models/concerns/spree/default_price.rb +1 -1
  14. data/app/models/concerns/spree/soft_deletable.rb +16 -0
  15. data/app/models/concerns/spree/user_address_book.rb +61 -44
  16. data/app/models/concerns/spree/user_methods.rb +23 -12
  17. data/app/models/spree/ability.rb +0 -13
  18. data/app/models/spree/address/name.rb +31 -0
  19. data/app/models/spree/address/state_validator.rb +71 -0
  20. data/app/models/spree/address.rb +17 -95
  21. data/app/models/spree/adjustment.rb +1 -29
  22. data/app/models/spree/base.rb +1 -28
  23. data/app/models/spree/calculator/default_tax.rb +1 -1
  24. data/app/models/spree/calculator/flexi_rate.rb +0 -5
  25. data/app/models/spree/calculator.rb +8 -11
  26. data/app/models/spree/country.rb +1 -6
  27. data/app/models/spree/credit_card.rb +2 -29
  28. data/app/models/spree/customer_return.rb +5 -6
  29. data/app/models/spree/exchange.rb +1 -1
  30. data/app/models/spree/image/active_storage_attachment.rb +29 -0
  31. data/app/models/spree/image/paperclip_attachment.rb +1 -1
  32. data/app/models/spree/image.rb +0 -7
  33. data/app/models/spree/inventory_unit.rb +1 -22
  34. data/app/models/spree/line_item.rb +12 -46
  35. data/app/models/spree/log_entry.rb +74 -1
  36. data/app/models/spree/option_type.rb +1 -1
  37. data/app/models/spree/option_value.rb +2 -2
  38. data/app/models/spree/order/payments.rb +2 -2
  39. data/app/models/spree/order.rb +70 -132
  40. data/app/models/spree/order_cancellations.rb +4 -24
  41. data/app/models/spree/order_inventory.rb +16 -4
  42. data/app/models/spree/order_merger.rb +7 -5
  43. data/app/models/spree/order_promotion.rb +1 -1
  44. data/app/models/spree/order_shipping.rb +6 -9
  45. data/app/models/spree/order_updater.rb +7 -15
  46. data/app/models/spree/payment/cancellation.rb +3 -22
  47. data/app/models/spree/payment/processing.rb +54 -30
  48. data/app/models/spree/payment.rb +13 -9
  49. data/app/models/spree/payment_create.rb +1 -13
  50. data/app/models/spree/payment_method/bogus_credit_card.rb +13 -9
  51. data/app/models/spree/payment_method/credit_card.rb +1 -3
  52. data/app/models/spree/payment_method/simple_bogus_credit_card.rb +4 -4
  53. data/app/models/spree/payment_method.rb +7 -106
  54. data/app/models/spree/payment_source.rb +2 -2
  55. data/app/models/spree/preference.rb +1 -1
  56. data/app/models/spree/price.rb +3 -9
  57. data/app/models/spree/product/scopes.rb +9 -32
  58. data/app/models/spree/product.rb +24 -52
  59. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
  60. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
  61. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
  62. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  63. data/app/models/spree/promotion/rules/taxon.rb +2 -15
  64. data/app/models/spree/promotion.rb +15 -8
  65. data/app/models/spree/promotion_action.rb +5 -15
  66. data/app/models/spree/promotion_code/batch_builder.rb +0 -14
  67. data/app/models/spree/promotion_code.rb +8 -3
  68. data/app/models/spree/promotion_code_batch.rb +1 -1
  69. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  70. data/app/models/spree/promotion_rule.rb +5 -1
  71. data/app/models/spree/promotion_rule_role.rb +1 -1
  72. data/app/models/spree/refund.rb +19 -13
  73. data/app/models/spree/reimbursement.rb +11 -22
  74. data/app/models/spree/reimbursement_performer.rb +2 -8
  75. data/app/models/spree/reimbursement_type/credit.rb +1 -4
  76. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +8 -2
  77. data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
  78. data/app/models/spree/return_authorization.rb +2 -5
  79. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  80. data/app/models/spree/return_item.rb +10 -18
  81. data/app/models/spree/role.rb +1 -1
  82. data/app/models/spree/shipment.rb +3 -56
  83. data/app/models/spree/shipping_calculator.rb +1 -1
  84. data/app/models/spree/shipping_manifest.rb +2 -2
  85. data/app/models/spree/shipping_method.rb +3 -35
  86. data/app/models/spree/shipping_rate.rb +1 -3
  87. data/app/models/spree/shipping_rate_tax.rb +1 -1
  88. data/app/models/spree/state.rb +0 -4
  89. data/app/models/spree/stock/availability_validator.rb +2 -2
  90. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  91. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  92. data/app/models/spree/stock/inventory_validator.rb +2 -2
  93. data/app/models/spree/stock/package.rb +1 -1
  94. data/app/models/spree/stock/simple_coordinator.rb +7 -18
  95. data/app/models/spree/stock/splitter/base.rb +2 -7
  96. data/app/models/spree/stock_item.rb +3 -15
  97. data/app/models/spree/stock_movement.rb +2 -0
  98. data/app/models/spree/store.rb +1 -13
  99. data/app/models/spree/store_credit.rb +9 -7
  100. data/app/models/spree/store_credit_category.rb +3 -8
  101. data/app/models/spree/store_credit_event.rb +1 -7
  102. data/app/models/spree/store_credit_reason.rb +0 -4
  103. data/app/models/spree/tax/tax_helpers.rb +1 -1
  104. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
  105. data/app/models/spree/tax_category.rb +2 -8
  106. data/app/models/spree/tax_rate.rb +7 -34
  107. data/app/models/spree/taxon/active_storage_attachment.rb +13 -0
  108. data/app/models/spree/taxon/paperclip_attachment.rb +0 -4
  109. data/app/models/spree/taxon.rb +1 -12
  110. data/app/models/spree/user_address.rb +3 -2
  111. data/app/models/spree/variant.rb +8 -58
  112. data/app/models/spree/variant_property_rule.rb +5 -1
  113. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  114. data/app/models/spree/zone.rb +1 -1
  115. data/config/locales/en.yml +293 -13
  116. data/db/default/spree/countries.rb +1 -1
  117. data/db/default/spree/states.rb +12 -4
  118. data/db/default/spree/store_credit.rb +2 -2
  119. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  120. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  121. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  122. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  123. data/db/migrate/20210122110141_add_name_to_spree_addresses.rb +13 -0
  124. data/lib/generators/{spree → solidus}/install/install_generator.rb +82 -14
  125. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +4 -9
  126. data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
  127. data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
  128. data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
  129. data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
  130. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  131. data/lib/spree/app_configuration.rb +104 -72
  132. data/lib/spree/core/class_constantizer.rb +2 -0
  133. data/lib/spree/core/controller_helpers/auth.rb +4 -4
  134. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  135. data/lib/spree/core/controller_helpers/order.rb +8 -27
  136. data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
  137. data/lib/spree/core/controller_helpers/pricing.rb +0 -8
  138. data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
  139. data/lib/spree/core/engine.rb +23 -8
  140. data/lib/spree/core/environment_extension.rb +0 -9
  141. data/lib/spree/core/importer/order.rb +24 -10
  142. data/lib/spree/core/permalinks.rb +1 -3
  143. data/lib/spree/core/product_filters.rb +5 -44
  144. data/lib/spree/core/role_configuration.rb +0 -14
  145. data/lib/spree/core/search/base.rb +0 -26
  146. data/lib/spree/core/state_machines/order.rb +249 -0
  147. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  148. data/lib/spree/core/state_machines.rb +11 -1
  149. data/lib/spree/core/validators/email.rb +2 -2
  150. data/lib/spree/core/version.rb +1 -1
  151. data/lib/spree/core.rb +11 -19
  152. data/lib/spree/deprecation.rb +1 -1
  153. data/lib/spree/encryptor.rb +25 -0
  154. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  155. data/lib/spree/event/configuration.rb +7 -7
  156. data/lib/spree/event/subscriber.rb +22 -20
  157. data/lib/spree/event/subscriber_registry.rb +94 -0
  158. data/lib/spree/event.rb +20 -18
  159. data/lib/spree/i18n.rb +0 -22
  160. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  161. data/lib/spree/money.rb +3 -18
  162. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  163. data/lib/spree/permission_sets/default_customer.rb +16 -16
  164. data/lib/spree/permission_sets/order_display.rb +11 -11
  165. data/lib/spree/permission_sets/order_management.rb +1 -1
  166. data/lib/spree/permission_sets/product_display.rb +9 -9
  167. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  168. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  169. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  170. data/lib/spree/permission_sets/stock_display.rb +2 -2
  171. data/lib/spree/permission_sets/stock_management.rb +1 -1
  172. data/lib/spree/permission_sets/user_display.rb +3 -3
  173. data/lib/spree/permission_sets/user_management.rb +4 -3
  174. data/lib/spree/permitted_attributes.rb +12 -56
  175. data/lib/spree/preferences/persistable.rb +23 -0
  176. data/lib/spree/preferences/preferable.rb +4 -3
  177. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  178. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  179. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  180. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  181. data/lib/spree/testing_support/capybara_ext.rb +3 -30
  182. data/lib/spree/testing_support/common_rake.rb +3 -3
  183. data/lib/spree/testing_support/controller_requests.rb +0 -82
  184. data/lib/spree/testing_support/dummy_app/mailer_previews/test_mailer_preview.rb +4 -0
  185. data/lib/spree/testing_support/dummy_app/migrations.rb +2 -6
  186. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  187. data/lib/spree/testing_support/dummy_app.rb +41 -24
  188. data/lib/spree/testing_support/factories/address_factory.rb +7 -4
  189. data/lib/spree/testing_support/factories/adjustment_factory.rb +10 -5
  190. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +5 -0
  191. data/lib/spree/testing_support/factories/calculator_factory.rb +5 -0
  192. data/lib/spree/testing_support/factories/carton_factory.rb +7 -2
  193. data/lib/spree/testing_support/factories/country_factory.rb +5 -0
  194. data/lib/spree/testing_support/factories/credit_card_factory.rb +5 -0
  195. data/lib/spree/testing_support/factories/customer_return_factory.rb +8 -3
  196. data/lib/spree/testing_support/factories/image_factory.rb +6 -1
  197. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +9 -4
  198. data/lib/spree/testing_support/factories/line_item_factory.rb +7 -2
  199. data/lib/spree/testing_support/factories/option_type_factory.rb +8 -0
  200. data/lib/spree/testing_support/factories/option_value_factory.rb +5 -0
  201. data/lib/spree/testing_support/factories/order_factory.rb +11 -7
  202. data/lib/spree/testing_support/factories/order_promotion_factory.rb +7 -2
  203. data/lib/spree/testing_support/factories/payment_factory.rb +9 -4
  204. data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -0
  205. data/lib/spree/testing_support/factories/price_factory.rb +6 -1
  206. data/lib/spree/testing_support/factories/product_factory.rb +10 -5
  207. data/lib/spree/testing_support/factories/product_option_type_factory.rb +7 -2
  208. data/lib/spree/testing_support/factories/product_property_factory.rb +7 -2
  209. data/lib/spree/testing_support/factories/promotion_category_factory.rb +5 -0
  210. data/lib/spree/testing_support/factories/promotion_code_factory.rb +7 -2
  211. data/lib/spree/testing_support/factories/promotion_factory.rb +13 -2
  212. data/lib/spree/testing_support/factories/property_factory.rb +5 -0
  213. data/lib/spree/testing_support/factories/refund_factory.rb +7 -2
  214. data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
  215. data/lib/spree/testing_support/factories/reimbursement_factory.rb +7 -2
  216. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +5 -0
  217. data/lib/spree/testing_support/factories/return_authorization_factory.rb +8 -3
  218. data/lib/spree/testing_support/factories/return_item_factory.rb +8 -4
  219. data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
  220. data/lib/spree/testing_support/factories/role_factory.rb +5 -0
  221. data/lib/spree/testing_support/factories/shipment_factory.rb +9 -3
  222. data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
  223. data/lib/spree/testing_support/factories/shipping_method_factory.rb +8 -3
  224. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -2
  225. data/lib/spree/testing_support/factories/state_factory.rb +7 -1
  226. data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -2
  227. data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -3
  228. data/lib/spree/testing_support/factories/stock_movement_factory.rb +6 -1
  229. data/lib/spree/testing_support/factories/stock_package_factory.rb +7 -2
  230. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +13 -0
  231. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -2
  232. data/lib/spree/testing_support/factories/store_credit_factory.rb +8 -3
  233. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +8 -1
  234. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
  235. data/lib/spree/testing_support/factories/store_factory.rb +6 -1
  236. data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -1
  237. data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -3
  238. data/lib/spree/testing_support/factories/taxon_factory.rb +10 -1
  239. data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
  240. data/lib/spree/testing_support/factories/user_factory.rb +14 -3
  241. data/lib/spree/testing_support/factories/variant_factory.rb +9 -4
  242. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +7 -2
  243. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +8 -3
  244. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +7 -2
  245. data/lib/spree/testing_support/factories/zone_factory.rb +8 -3
  246. data/lib/spree/testing_support/factories.rb +8 -4
  247. data/lib/spree/testing_support/factory_bot.rb +68 -0
  248. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  249. data/lib/spree/testing_support/fixtures/file.txt +1 -0
  250. data/lib/spree/testing_support/job_helpers.rb +24 -0
  251. data/lib/spree/testing_support/order_walkthrough.rb +10 -13
  252. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  253. data/lib/spree/testing_support/preferences.rb +0 -23
  254. data/lib/spree/testing_support/sequences.rb +4 -1
  255. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  256. data/lib/spree/testing_support/translations.rb +25 -0
  257. data/lib/spree/testing_support.rb +31 -0
  258. data/lib/tasks/solidus/check_orders_with_invalid_email.rake +18 -0
  259. data/lib/tasks/upgrade.rake +15 -0
  260. data/solidus_core.gemspec +30 -7
  261. metadata +137 -408
  262. data/app/mailers/spree/test_mailer.rb +0 -13
  263. data/app/models/concerns/spree/user_payment_source.rb +0 -26
  264. data/app/models/spree/calculator/free_shipping.rb +0 -21
  265. data/app/models/spree/calculator/percent_per_item.rb +0 -49
  266. data/app/models/spree/calculator/price_sack.rb +0 -27
  267. data/app/models/spree/gateway/bogus.rb +0 -13
  268. data/app/models/spree/gateway/bogus_simple.rb +0 -13
  269. data/app/models/spree/gateway.rb +0 -14
  270. data/app/models/spree/order/checkout.rb +0 -243
  271. data/app/models/spree/order_capturing.rb +0 -50
  272. data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
  273. data/lib/solidus/migrations/rename_gateways.rb +0 -41
  274. data/lib/spree/core/current_store.rb +0 -24
  275. data/lib/spree/paranoia_deprecations.rb +0 -21
  276. data/lib/spree/promo/environment.rb +0 -12
  277. data/lib/spree/testing_support/bar_ability.rb +0 -19
  278. data/lib/tasks/core.rake +0 -104
  279. data/lib/tasks/email.rake +0 -11
  280. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
  281. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
  282. data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
  283. data/lib/tasks/migrations/rename_gateways.rake +0 -23
  284. data/lib/tasks/order_capturing.rake +0 -27
  285. data/script/rails +0 -10
  286. data/spec/fixtures/thinking-cat.jpg +0 -0
  287. data/spec/helpers/base_helper_spec.rb +0 -168
  288. data/spec/helpers/products_helper_spec.rb +0 -202
  289. data/spec/helpers/taxons_helper_spec.rb +0 -43
  290. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  291. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  292. data/spec/lib/i18n_spec.rb +0 -97
  293. data/spec/lib/search/base_spec.rb +0 -91
  294. data/spec/lib/search/variant_spec.rb +0 -115
  295. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  296. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  297. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  298. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  299. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  300. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  301. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  302. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  303. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  304. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  305. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  306. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  307. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  308. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  309. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  310. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  311. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  312. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  313. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  314. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  315. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  316. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  317. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  318. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  319. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  320. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  321. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  322. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  323. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  324. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  325. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  326. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  327. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  328. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  329. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  330. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  331. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  332. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  333. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  334. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  335. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  336. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  337. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  338. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  339. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  340. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  341. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  342. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  343. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  344. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  345. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  346. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  347. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  348. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  349. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  350. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  351. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  352. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  353. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  354. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  355. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  356. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  357. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  358. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  359. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  360. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  361. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  362. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  363. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  364. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  365. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  366. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  367. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  368. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  369. data/spec/lib/spree/core/version_spec.rb +0 -19
  370. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  371. data/spec/lib/spree/event_spec.rb +0 -130
  372. data/spec/lib/spree/localized_number_spec.rb +0 -45
  373. data/spec/lib/spree/migrations_spec.rb +0 -32
  374. data/spec/lib/spree/money_spec.rb +0 -298
  375. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  376. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  377. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  378. data/spec/lib/tasks/dummy_task.rake +0 -12
  379. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  380. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  381. data/spec/mailers/carton_mailer_spec.rb +0 -44
  382. data/spec/mailers/order_mailer_spec.rb +0 -117
  383. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  384. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  385. data/spec/mailers/test_mailer_spec.rb +0 -13
  386. data/spec/models/spree/ability_spec.rb +0 -279
  387. data/spec/models/spree/address_spec.rb +0 -399
  388. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  389. data/spec/models/spree/adjustment_spec.rb +0 -339
  390. data/spec/models/spree/asset_spec.rb +0 -25
  391. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  392. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  393. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  394. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  395. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  396. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  397. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  398. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  399. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  400. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  401. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  402. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  403. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  404. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  405. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  406. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  407. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  408. data/spec/models/spree/calculator_spec.rb +0 -43
  409. data/spec/models/spree/carton_spec.rb +0 -145
  410. data/spec/models/spree/classification_spec.rb +0 -126
  411. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  412. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  413. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  414. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  415. data/spec/models/spree/country_spec.rb +0 -154
  416. data/spec/models/spree/credit_card_spec.rb +0 -373
  417. data/spec/models/spree/customer_return_spec.rb +0 -294
  418. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  419. data/spec/models/spree/exchange_spec.rb +0 -76
  420. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  421. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  422. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  423. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  424. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  425. data/spec/models/spree/gateway_spec.rb +0 -14
  426. data/spec/models/spree/image_spec.rb +0 -25
  427. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  428. data/spec/models/spree/line_item_spec.rb +0 -240
  429. data/spec/models/spree/option_type_spec.rb +0 -16
  430. data/spec/models/spree/option_value_spec.rb +0 -52
  431. data/spec/models/spree/order/address_spec.rb +0 -52
  432. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  433. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  434. data/spec/models/spree/order/checkout_spec.rb +0 -740
  435. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  436. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  437. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  438. data/spec/models/spree/order/payment_spec.rb +0 -280
  439. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  440. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  441. data/spec/models/spree/order/totals_spec.rb +0 -26
  442. data/spec/models/spree/order/validations_spec.rb +0 -17
  443. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  444. data/spec/models/spree/order_capturing_spec.rb +0 -16
  445. data/spec/models/spree/order_contents_spec.rb +0 -362
  446. data/spec/models/spree/order_inventory_spec.rb +0 -285
  447. data/spec/models/spree/order_merger_spec.rb +0 -162
  448. data/spec/models/spree/order_mutex_spec.rb +0 -89
  449. data/spec/models/spree/order_promotion_spec.rb +0 -33
  450. data/spec/models/spree/order_shipping_spec.rb +0 -247
  451. data/spec/models/spree/order_spec.rb +0 -1687
  452. data/spec/models/spree/order_taxation_spec.rb +0 -128
  453. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  454. data/spec/models/spree/order_updater_spec.rb +0 -556
  455. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  456. data/spec/models/spree/payment_create_spec.rb +0 -195
  457. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  458. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  459. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  460. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  461. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  462. data/spec/models/spree/payment_method_spec.rb +0 -408
  463. data/spec/models/spree/payment_spec.rb +0 -1270
  464. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  465. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  466. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  467. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  468. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  469. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  470. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  471. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  472. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  473. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  474. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  475. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  476. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  477. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  478. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  479. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  480. data/spec/models/spree/preference_spec.rb +0 -79
  481. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  482. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  483. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  484. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  485. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  486. data/spec/models/spree/preferences/store_spec.rb +0 -40
  487. data/spec/models/spree/price_spec.rb +0 -150
  488. data/spec/models/spree/product/scopes_spec.rb +0 -164
  489. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  490. data/spec/models/spree/product_filter_spec.rb +0 -28
  491. data/spec/models/spree/product_property_spec.rb +0 -20
  492. data/spec/models/spree/product_spec.rb +0 -584
  493. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  494. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  495. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  496. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  497. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  498. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  499. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  500. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  501. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  502. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  503. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  504. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  505. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  506. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  507. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  508. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  509. data/spec/models/spree/promotion_action_spec.rb +0 -44
  510. data/spec/models/spree/promotion_category_spec.rb +0 -19
  511. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  512. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  513. data/spec/models/spree/promotion_code_spec.rb +0 -206
  514. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  515. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  516. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  517. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  518. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  519. data/spec/models/spree/promotion_spec.rb +0 -945
  520. data/spec/models/spree/refund_spec.rb +0 -200
  521. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  522. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  523. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  524. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  525. data/spec/models/spree/reimbursement_spec.rb +0 -278
  526. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  527. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  528. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  529. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  530. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  531. data/spec/models/spree/return_authorization_spec.rb +0 -226
  532. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  533. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  534. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  535. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  536. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  537. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  538. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  539. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  540. data/spec/models/spree/return_item_spec.rb +0 -785
  541. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  542. data/spec/models/spree/shipment_spec.rb +0 -914
  543. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  544. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  545. data/spec/models/spree/shipping_method_spec.rb +0 -292
  546. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  547. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  548. data/spec/models/spree/state_spec.rb +0 -43
  549. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  550. data/spec/models/spree/stock/availability_spec.rb +0 -143
  551. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  552. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  553. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  554. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  555. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  556. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  557. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  558. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  559. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  560. data/spec/models/spree/stock/package_spec.rb +0 -182
  561. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  562. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  563. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  564. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  565. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  566. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  567. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  568. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  569. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  570. data/spec/models/spree/stock_item_spec.rb +0 -348
  571. data/spec/models/spree/stock_location_spec.rb +0 -288
  572. data/spec/models/spree/stock_movement_spec.rb +0 -58
  573. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  574. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  575. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  576. data/spec/models/spree/store_credit_spec.rb +0 -900
  577. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  578. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  579. data/spec/models/spree/store_spec.rb +0 -156
  580. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  581. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  582. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  583. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  584. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  585. data/spec/models/spree/tax_category_spec.rb +0 -50
  586. data/spec/models/spree/tax_rate_spec.rb +0 -317
  587. data/spec/models/spree/taxon_spec.rb +0 -197
  588. data/spec/models/spree/taxonomy_spec.rb +0 -15
  589. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  590. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  591. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  592. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  593. data/spec/models/spree/user_spec.rb +0 -247
  594. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  595. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  596. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  597. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  598. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  599. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  600. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  601. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  602. data/spec/models/spree/variant_spec.rb +0 -862
  603. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  604. data/spec/models/spree/wallet_spec.rb +0 -155
  605. data/spec/models/spree/zone_spec.rb +0 -248
  606. data/spec/rails_helper.rb +0 -46
  607. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  608. data/spec/spec_helper.rb +0 -36
  609. data/spec/support/big_decimal.rb +0 -7
  610. data/spec/support/concerns/default_price.rb +0 -44
  611. data/spec/support/concerns/payment_source.rb +0 -66
  612. data/spec/support/concerns/working_factories.rb +0 -15
  613. data/spec/support/dummy_ability.rb +0 -7
  614. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  615. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  616. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  617. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  618. /data/{app/models → lib}/spree/user_class_handle.rb +0 -0
@@ -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
@@ -1,62 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Preferences::ScopedStore, type: :model do
6
- let(:scoped_store){ described_class.new(prefix, suffix) }
7
- subject{ scoped_store }
8
- let(:prefix){ nil }
9
- let(:suffix){ nil }
10
-
11
- describe '#store' do
12
- subject{ scoped_store.store }
13
- it "uses the global preferences instance" do
14
- is_expected.to be Spree::Preferences::Store.instance
15
- end
16
- end
17
-
18
- context 'stubbed store' do
19
- let(:store){ double(:store) }
20
- before do
21
- allow(scoped_store).to receive(:store).and_return(store)
22
- end
23
-
24
- context "with a prefix" do
25
- let(:prefix){ 'my_class' }
26
-
27
- it "can fetch" do
28
- expect(store).to receive(:fetch).with('my_class/attr')
29
- scoped_store.fetch('attr'){ 'default' }
30
- end
31
-
32
- it "can assign" do
33
- expect(store).to receive(:[]=).with('my_class/attr', 'val')
34
- scoped_store['attr'] = 'val'
35
- end
36
-
37
- it "can delete" do
38
- expect(store).to receive(:delete).with('my_class/attr')
39
- scoped_store.delete('attr')
40
- end
41
-
42
- context "and suffix" do
43
- let(:suffix){ 123 }
44
-
45
- it "can fetch" do
46
- expect(store).to receive(:fetch).with('my_class/attr/123')
47
- scoped_store.fetch('attr'){ 'default' }
48
- end
49
-
50
- it "can assign" do
51
- expect(store).to receive(:[]=).with('my_class/attr/123', 'val')
52
- scoped_store['attr'] = 'val'
53
- end
54
-
55
- it "can delete" do
56
- expect(store).to receive(:delete).with('my_class/attr/123')
57
- scoped_store.delete('attr')
58
- end
59
- end
60
- end
61
- end
62
- end
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- module Spree
6
- RSpec.describe Preferences::StaticModelPreferences do
7
- let(:preference_class) do
8
- Class.new do
9
- include Preferences::Preferable
10
- preference :color, :string
11
- end
12
- end
13
- let(:other_class){ Class.new }
14
- let(:definitions){ subject.for_class(preference_class) }
15
-
16
- it "is empty by default" do
17
- expect(definitions).to be_empty
18
- end
19
-
20
- it "can store preferences" do
21
- subject.add(preference_class, 'my_definition', {})
22
- # just testing that it was added here
23
- expect(definitions).to have_key('my_definition')
24
- end
25
-
26
- it "errors assigning invalid preferences" do
27
- expect {
28
- subject.add(preference_class, 'my_definition', { ice_cream: 'chocolate' })
29
- }.to raise_error(/\APreference :ice_cream is not defined/)
30
- end
31
-
32
- context "with stored definitions" do
33
- before do
34
- subject.add(preference_class, 'light', { color: 'white' })
35
- subject.add(preference_class, 'dark', { color: 'black' })
36
- subject.add(preference_class, 'no_preference', {})
37
- end
38
-
39
- describe "complete definition" do
40
- let(:definition){ definitions['dark'] }
41
- it "can fetch value" do
42
- expect(definition.fetch(:color)).to eq 'black'
43
- end
44
-
45
- it "can be converted to hash" do
46
- expect(definition.to_hash).to eq({ color: 'black' })
47
- end
48
-
49
- it "ignores assignment" do
50
- definition[:color] = 'maroon'
51
- expect(definition.fetch(:color)).to eq 'black'
52
- expect(definition.to_hash).to eq({ color: 'black' })
53
- end
54
- end
55
-
56
- describe "empty definition" do
57
- let(:definition){ definitions['no_preference'] }
58
-
59
- it "uses fallback value" do
60
- expect(definition.fetch(:color){ 'red' }).to eq 'red'
61
- end
62
-
63
- it "can be converted to hash" do
64
- expect(definition.to_hash).to eq({})
65
- end
66
-
67
- it "ignores assignment" do
68
- definition[:color] = 'maroon'
69
- expect(definition.fetch(:color){ 'red' }).to eq 'red'
70
- expect(definition.to_hash).to eq({})
71
- end
72
- end
73
-
74
- it "is still empty for other classes" do
75
- expect(subject.for_class(other_class)).to be_empty
76
- end
77
- end
78
- end
79
- end
@@ -1,67 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
- require 'spree/preferences/statically_configurable'
5
-
6
- module Spree
7
- RSpec.describe Preferences::StaticallyConfigurable do
8
- let(:superklass) do
9
- # Same interface activerecord's serialization would provide
10
- Class.new do
11
- attr_accessor :preferences
12
- def initialize
13
- @preferences = { color: 'blue' }
14
- end
15
-
16
- def [](key)
17
- return @preferences if key == :preferences
18
- end
19
- end
20
- end
21
- let(:klass) do
22
- Class.new(superklass) do
23
- include Preferences::Preferable
24
- include Preferences::StaticallyConfigurable
25
-
26
- preference :color, :string
27
-
28
- attr_accessor :preference_source
29
- end
30
- end
31
-
32
- subject do
33
- klass.new.tap do |item|
34
- item.preference_source = preference_source
35
- end
36
- end
37
-
38
- before do
39
- Spree::Config.static_model_preferences.add(klass, 'credentials', color: 'red')
40
- end
41
-
42
- describe "available_preference_sources" do
43
- it "should contain the defined preference sets" do
44
- expect(klass.available_preference_sources).to eq ['credentials']
45
- end
46
- end
47
-
48
- context "with no preference_source" do
49
- let(:preference_source) { nil }
50
- it "uses the persisted preference" do
51
- expect(subject.preferred_color).to eq "blue"
52
- end
53
- end
54
-
55
- context "with preference_source set" do
56
- let(:preference_source) { 'credentials' }
57
- it "uses the statically configured preference" do
58
- expect(subject.preferred_color).to eq "red"
59
- end
60
-
61
- it "ignores assignment" do
62
- subject.preferences = { color: 'orange' }
63
- expect(subject.preferred_color).to eq "red"
64
- end
65
- end
66
- end
67
- end