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,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::TaxCalculator::Default do
6
- let(:shipping_address) { FactoryBot.create(:address, state: new_york) }
7
- let(:order) { FactoryBot.create(:order, ship_address: shipping_address, state: "delivery") }
8
-
9
- let(:new_york) { FactoryBot.create(:state, state_code: "NY") }
10
- let(:new_york_zone) { FactoryBot.create(:zone, states: [new_york]) }
11
-
12
- let(:books_category) { FactoryBot.create(:tax_category, name: "Books") }
13
- let!(:book_tax_rate) do
14
- FactoryBot.create(
15
- :tax_rate,
16
- name: "New York Sales Tax",
17
- tax_categories: [books_category],
18
- zone: new_york_zone,
19
- included_in_price: false,
20
- amount: 0.05
21
- )
22
- end
23
-
24
- before do
25
- book = FactoryBot.create(
26
- :product,
27
- price: 20,
28
- name: "Book",
29
- tax_category: books_category,
30
- )
31
-
32
- order.contents.add(book.master)
33
- end
34
-
35
- let(:calculator) { described_class.new(order) }
36
-
37
- describe '#calculate' do
38
- subject(:calculated_taxes) { calculator.calculate }
39
-
40
- it { is_expected.to be_a Spree::Tax::OrderTax }
41
-
42
- it "has tax information for the line item", aggregate_failures: true do
43
- expect(calculated_taxes.line_item_taxes.count).to eq 1
44
-
45
- line_item_tax = calculated_taxes.line_item_taxes.first
46
- expect(line_item_tax.amount).to eq 1
47
- expect(line_item_tax.included_in_price).to be false
48
- expect(line_item_tax.tax_rate).to eq book_tax_rate
49
- expect(line_item_tax.label).to eq "New York Sales Tax 5.000%"
50
- end
51
-
52
- it "has tax information for the shipments" do
53
- expect(calculated_taxes.shipment_taxes).to be_empty
54
- end
55
- end
56
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::TaxCategory, type: :model do
6
- context 'default tax category' do
7
- let(:tax_category) { create(:tax_category) }
8
- let(:new_tax_category) { create(:tax_category) }
9
-
10
- before do
11
- tax_category.update_column(:is_default, true)
12
- end
13
-
14
- it "should undefault the previous default tax category" do
15
- new_tax_category.update({ is_default: true })
16
- expect(new_tax_category.is_default).to be true
17
-
18
- tax_category.reload
19
- expect(tax_category.is_default).to be false
20
- end
21
-
22
- it "should undefault the previous default tax category except when updating the existing default tax category" do
23
- tax_category.update_column(:description, "Updated description")
24
-
25
- tax_category.reload
26
- expect(tax_category.is_default).to be true
27
- end
28
- end
29
-
30
- context ".discard" do
31
- let(:tax_category) { create(:tax_category) }
32
-
33
- it "set deleted_at correctly" do
34
- tax_category.discard
35
- expect(tax_category.deleted_at).not_to be_blank
36
- end
37
-
38
- context "when there are tax_rates associated" do
39
- let(:tax_rate) { create(:tax_rate) }
40
- let(:tax_category) { tax_rate.tax_categories.first }
41
-
42
- it 'correctly discard association records' do
43
- expect { tax_category.discard }
44
- .to change { tax_category.tax_rates.size }
45
- .from(1)
46
- .to(0)
47
- end
48
- end
49
- end
50
- end
@@ -1,317 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::TaxRate, type: :model do
6
- it { is_expected.to respond_to(:shipping_rate_taxes) }
7
-
8
- context '.for_address' do
9
- let(:germany) { create(:country, iso: "DE") }
10
- let(:germany_zone) { create(:zone, countries: [germany]) }
11
- let!(:german_tax) { create(:tax_rate, zone: germany_zone) }
12
- let(:france) { create(:country, iso: "FR") }
13
- let(:france_zone) { create(:zone, countries: [france]) }
14
- let!(:french_tax) { create(:tax_rate, zone: france_zone) }
15
- let(:eu_zone) { create(:zone, countries: [germany, france]) }
16
- let!(:eu_tax) { create(:tax_rate, zone: eu_zone) }
17
- let(:usa) { create(:country, iso: "US") }
18
- let(:us_zone) { create(:zone, countries: [usa]) }
19
- let!(:us_tax) { create(:tax_rate, zone: us_zone) }
20
- let(:new_york) { create(:state, country: usa, state_code: "NY") }
21
- let(:new_york_zone) { create(:zone, states: [new_york]) }
22
- let!(:new_york_tax) { create(:tax_rate, zone: new_york_zone) }
23
- let(:alabama) { create(:state, country: usa, state_code: "AL") }
24
- let(:alabama_zone) { create(:zone, states: [alabama]) }
25
- let!(:alabama_tax) { create(:tax_rate, zone: alabama_zone) }
26
-
27
- subject(:rates_for_address) { Spree::TaxRate.for_address(address) }
28
-
29
- context 'when address is in germany' do
30
- let(:address) { create(:address, country_iso_code: "DE") }
31
- it { is_expected.to contain_exactly(german_tax, eu_tax) }
32
- end
33
-
34
- context 'when address is in france' do
35
- let(:address) { create(:address, country_iso_code: "FR") }
36
- it { is_expected.to contain_exactly(french_tax, eu_tax) }
37
- end
38
-
39
- context 'when address is in new york' do
40
- let(:address) { create(:address, country_iso_code: "US", state_code: "NY") }
41
- it { is_expected.to contain_exactly(new_york_tax, us_tax) }
42
- end
43
-
44
- context 'when address is in alabama' do
45
- let(:address) { create(:address, country_iso_code: "US", state_code: "AL") }
46
- it { is_expected.to contain_exactly(alabama_tax, us_tax) }
47
- end
48
-
49
- context 'when address is in alaska' do
50
- let(:address) { create(:address, country_iso_code: "US", state_code: "AK") }
51
- it { is_expected.to contain_exactly(us_tax) }
52
- end
53
- end
54
-
55
- context ".for_zone" do
56
- subject(:rates_for_zone) { Spree::TaxRate.for_zone(zone) }
57
-
58
- context "when zone is nil" do
59
- let(:zone) { nil }
60
-
61
- it "should return an empty array" do
62
- expect(subject).to eq([])
63
- end
64
- end
65
-
66
- context "when no rate zones match the tax zone" do
67
- let(:rate_zone) { create(:zone, :with_country) }
68
- let!(:rate) { create :tax_rate, zone: rate_zone }
69
-
70
- context "when there is no default tax zone" do
71
- context "and the zone has no shared members with the rate zone" do
72
- let(:zone) { create(:zone, :with_country) }
73
-
74
- it "should return an empty array" do
75
- expect(subject).to eq([])
76
- end
77
- end
78
-
79
- context "and the zone has shared members with the rate zone" do
80
- let(:zone) { create(:zone, countries: rate_zone.countries) }
81
-
82
- it "should return the rate that matches the rate zone" do
83
- expect(subject).to eq([rate])
84
- end
85
- end
86
-
87
- context "there is many rates that match the zone" do
88
- let!(:rate2) { create :tax_rate, zone: rate_zone }
89
- let(:zone) { create(:zone, countries: rate_zone.countries) }
90
-
91
- it "should return all rates that match the rate zone" do
92
- expect(subject).to match_array([rate, rate2])
93
- end
94
- end
95
-
96
- context "when the tax_zone is contained within a rate zone" do
97
- let(:country1) { create :country }
98
- let(:country2) { create :country }
99
- let(:rate_zone) { create(:zone, countries: [country1, country2]) }
100
- let(:zone) { create(:zone, countries: [country1]) }
101
-
102
- it "should return the rate zone" do
103
- expect(subject).to eq([rate])
104
- end
105
- end
106
- end
107
-
108
- context "when there is a default tax zone" do
109
- let(:default_zone) { create(:zone, :with_country) }
110
- let(:included_in_price) { false }
111
- let!(:rate) do
112
- create(:tax_rate, zone: default_zone, included_in_price: included_in_price)
113
- end
114
-
115
- context "when the zone is the default zone" do
116
- let(:zone) { default_zone }
117
-
118
- context "when the tax is not a VAT" do
119
- it { is_expected.to eq([rate]) }
120
- end
121
-
122
- context "when the tax is a VAT" do
123
- let(:included_in_price) { true }
124
-
125
- it { is_expected.to eq([rate]) }
126
- end
127
- end
128
-
129
- context "when the zone is outside the default zone" do
130
- let(:zone) { create(:zone, :with_country) }
131
-
132
- it { is_expected.to be_empty }
133
- end
134
- end
135
- end
136
- end
137
-
138
- describe "#adjust" do
139
- let(:taxable_address) { create(:address) }
140
- let(:order) { create(:order_with_line_items, ship_address: order_address) }
141
- let(:tax_zone) { create(:zone, countries: [taxable_address.country]) }
142
- let(:foreign_address) { create(:address, country_iso_code: "CA") }
143
- let!(:foreign_zone) { create(:zone, countries: [foreign_address.country]) }
144
- let(:tax_rate) do
145
- create(:tax_rate,
146
- included_in_price: included_in_price,
147
- show_rate_in_label: show_rate_in_label,
148
- amount: 0.125,
149
- zone: tax_zone)
150
- end
151
-
152
- let(:item) { order.line_items.first }
153
-
154
- describe 'adjustments' do
155
- before do
156
- expect(Spree::Deprecation).to receive(:warn)
157
- tax_rate.adjust(nil, item)
158
- end
159
-
160
- let(:adjustment_label) { item.adjustments.tax.first.label }
161
-
162
- context 'for included rates' do
163
- let(:included_in_price) { true }
164
- let(:order_address) { taxable_address }
165
-
166
- context 'with show rate in label' do
167
- let(:show_rate_in_label) { true }
168
-
169
- it 'shows the rate in the label' do
170
- expect(adjustment_label).to include("12.500%")
171
- end
172
-
173
- it 'adds a remark that the rate is included in the price' do
174
- expect(adjustment_label).to include("Included in Price")
175
- end
176
- end
177
-
178
- context 'with show rate in label turned off' do
179
- let(:show_rate_in_label) { false }
180
-
181
- it 'does not show the rate in the label' do
182
- expect(adjustment_label).not_to include("12.500%")
183
- end
184
-
185
- it 'does not have two consecutive spaces' do
186
- expect(adjustment_label).not_to include(" ")
187
- end
188
-
189
- it 'adds a remark that the rate is included in the price' do
190
- expect(adjustment_label).to include("Included in Price")
191
- end
192
- end
193
- end
194
-
195
- context 'for additional rates' do
196
- let(:included_in_price) { false }
197
- let(:order_address) { taxable_address }
198
-
199
- context 'with show rate in label' do
200
- let(:show_rate_in_label) { true }
201
-
202
- it 'shows the rate in the label' do
203
- expect(adjustment_label).to include("12.500%")
204
- end
205
-
206
- it 'does not add a remark that the rate is included in the price' do
207
- expect(adjustment_label).not_to include("Included in Price")
208
- end
209
- end
210
-
211
- context 'with show rate in label turned off' do
212
- let(:show_rate_in_label) { false }
213
-
214
- it 'does not show the rate in the label' do
215
- expect(adjustment_label).not_to include("12.500%")
216
- end
217
-
218
- it 'does not add a remark that the rate is included in the price' do
219
- expect(adjustment_label).not_to include("Included in Price")
220
- end
221
- end
222
- end
223
- end
224
- end
225
-
226
- describe "#active?" do
227
- subject(:rate) { create(:tax_rate, validity).active? }
228
-
229
- context "when validity is not set" do
230
- let(:validity) { {} }
231
-
232
- it { is_expected.to eq(true) }
233
- end
234
-
235
- context "when starts_at is set" do
236
- context "now" do
237
- let(:validity) { { starts_at: Time.current } }
238
-
239
- it { is_expected.to eq(true) }
240
- end
241
-
242
- context "in the past" do
243
- let(:validity) { { starts_at: 1.day.ago } }
244
-
245
- it { is_expected.to eq(true) }
246
- end
247
-
248
- context "in the future" do
249
- let(:validity) { { starts_at: 1.day.from_now } }
250
-
251
- it { is_expected.to eq(false) }
252
- end
253
- end
254
-
255
- context "when expires_at is set" do
256
- context "now" do
257
- let(:validity) { { expires_at: Time.current } }
258
-
259
- it { is_expected.to eq(false) }
260
- end
261
-
262
- context "in the past" do
263
- let(:validity) { { expires_at: 1.day.ago } }
264
-
265
- it { is_expected.to eq(false) }
266
- end
267
-
268
- context "in the future" do
269
- let(:validity) { { expires_at: 1.day.from_now } }
270
-
271
- it { is_expected.to eq(true) }
272
- end
273
- end
274
-
275
- context "when starts_at and expires_at are set" do
276
- context "so that today is in range" do
277
- let(:validity) { { starts_at: 1.day.ago, expires_at: 1.day.from_now } }
278
-
279
- it { is_expected.to eq(true) }
280
- end
281
-
282
- context "both in the past" do
283
- let(:validity) { { starts_at: 2.days.ago, expires_at: 1.day.ago } }
284
-
285
- it { is_expected.to eq(false) }
286
- end
287
-
288
- context "both in the future" do
289
- let(:validity) { { starts_at: 1.day.from_now, expires_at: 2.days.from_now } }
290
-
291
- it { is_expected.to eq(false) }
292
- end
293
- end
294
- end
295
-
296
- describe '#tax_category (deprecated)' do
297
- let(:tax_rate) { create(:tax_rate, tax_categories: [tax_category]) }
298
- let(:tax_category) { create(:tax_category) }
299
-
300
- it "returns the first tax category" do
301
- tax_category = Spree::Deprecation.silence { tax_rate.tax_category }
302
- expect(tax_category).to eq(tax_category)
303
- end
304
- end
305
-
306
- describe '#tax_category= (deprecated)' do
307
- let(:tax_rate) { Spree::TaxRate.new }
308
- let(:tax_category) { create(:tax_category) }
309
-
310
- it "can assign the tax categories" do
311
- Spree::Deprecation.silence {
312
- tax_rate.tax_category = tax_category
313
- }
314
- expect(tax_rate.tax_categories).to eq([tax_category])
315
- end
316
- end
317
- end
@@ -1,197 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Taxon, type: :model do
6
- context "#destroy" do
7
- subject(:nested_set_options) { described_class.acts_as_nested_set_options }
8
-
9
- it "should destroy all associated taxons" do
10
- expect(nested_set_options[:dependent]).to eq :destroy
11
- end
12
- end
13
-
14
- describe '#to_param' do
15
- let(:taxon) { FactoryBot.build(:taxon, name: "Ruby on Rails") }
16
-
17
- subject { super().to_param }
18
- it { is_expected.to eql taxon.permalink }
19
- end
20
-
21
- context "set_permalink" do
22
- let(:taxon) { FactoryBot.build(:taxon, name: "Ruby on Rails") }
23
-
24
- it "should set permalink correctly when no parent present" do
25
- taxon.set_permalink
26
- expect(taxon.permalink).to eql "ruby-on-rails"
27
- end
28
-
29
- context "updating a taxon permalink" do
30
- it 'parameterizes permalink correctly' do
31
- taxon.save!
32
- taxon.update(permalink: 'spécial&charactèrs')
33
- expect(taxon.permalink).to eql "special-characters"
34
- end
35
- end
36
-
37
- context "with parent taxon" do
38
- let(:parent) { FactoryBot.build(:taxon, permalink: "brands") }
39
- before { allow(taxon).to receive_messages parent: parent }
40
-
41
- it "should set permalink correctly when taxon has parent" do
42
- taxon.set_permalink
43
- expect(taxon.permalink).to eql "brands/ruby-on-rails"
44
- end
45
-
46
- it "should set permalink correctly with existing permalink present" do
47
- taxon.permalink = "b/rubyonrails"
48
- taxon.set_permalink
49
- expect(taxon.permalink).to eql "brands/rubyonrails"
50
- end
51
-
52
- it 'parameterizes permalink correctly' do
53
- taxon.save!
54
- taxon.update(permalink_part: 'spécial&charactèrs')
55
- expect(taxon.reload.permalink).to eql "brands/special-characters"
56
- end
57
-
58
- # Regression test for https://github.com/spree/spree/issues/3390
59
- context "setting a new node sibling position via :child_index=" do
60
- let(:idx) { rand(0..100) }
61
- before { allow(parent).to receive(:move_to_child_with_index) }
62
-
63
- context "taxon is not new" do
64
- before { allow(taxon).to receive(:new_record?).and_return(false) }
65
-
66
- it "passes the desired index move_to_child_with_index of :parent " do
67
- expect(taxon).to receive(:move_to_child_with_index).with(parent, idx)
68
-
69
- taxon.child_index = idx
70
- end
71
- end
72
- end
73
- end
74
- end
75
-
76
- context "updating permalink" do
77
- let(:taxonomy) { create(:taxonomy, name: 't') }
78
- let(:root) { taxonomy.root }
79
- let(:taxon1) { create(:taxon, name: 't1', taxonomy: taxonomy, parent: root) }
80
- let(:taxon2) { create(:taxon, name: 't2', taxonomy: taxonomy, parent: root) }
81
- let(:taxon2_child) { create(:taxon, name: 't2_child', taxonomy: taxonomy, parent: taxon2) }
82
-
83
- context "changing parent" do
84
- subject do
85
- -> { taxon2.update!(parent: taxon1) }
86
- end
87
-
88
- it "changes own permalink" do
89
- is_expected.to change{ taxon2.reload.permalink }.from('t/t2').to('t/t1/t2')
90
- end
91
-
92
- it "changes child's permalink" do
93
- is_expected.to change{ taxon2_child.reload.permalink }.from('t/t2/t2_child').to('t/t1/t2/t2_child')
94
- end
95
- end
96
-
97
- context "changing own permalink" do
98
- subject do
99
- -> { taxon2.update!(permalink: 'foo') }
100
- end
101
-
102
- it "changes own permalink" do
103
- is_expected.to change{ taxon2.reload.permalink }.from('t/t2').to('t/foo')
104
- end
105
-
106
- it "changes child's permalink" do
107
- is_expected.to change{ taxon2_child.reload.permalink }.from('t/t2/t2_child').to('t/foo/t2_child')
108
- end
109
- end
110
-
111
- context "changing own permalink part" do
112
- subject do
113
- -> { taxon2.update!(permalink_part: 'foo') }
114
- end
115
-
116
- it "changes own permalink" do
117
- is_expected.to change{ taxon2.reload.permalink }.from('t/t2').to('t/foo')
118
- end
119
-
120
- it "changes child's permalink" do
121
- is_expected.to change{ taxon2_child.reload.permalink }.from('t/t2/t2_child').to('t/foo/t2_child')
122
- end
123
- end
124
-
125
- context "changing parent and own permalink" do
126
- subject do
127
- -> { taxon2.update!(parent: taxon1, permalink: 'foo') }
128
- end
129
-
130
- it "changes own permalink" do
131
- is_expected.to change{ taxon2.reload.permalink }.from('t/t2').to('t/t1/foo')
132
- end
133
-
134
- it "changes child's permalink" do
135
- is_expected.to change{ taxon2_child.reload.permalink }.from('t/t2/t2_child').to('t/t1/foo/t2_child')
136
- end
137
- end
138
-
139
- context 'changing parent permalink with special characters ' do
140
- subject do
141
- -> { taxon2.update!(permalink: 'spécial&charactèrs') }
142
- end
143
-
144
- it 'changes own permalink with parameterized characters' do
145
- is_expected.to change{ taxon2.reload.permalink }.from('t/t2').to('t/special-characters')
146
- end
147
-
148
- it 'changes child permalink with parameterized characters' do
149
- is_expected.to change{ taxon2_child.reload.permalink }.from('t/t2/t2_child').to('t/special-characters/t2_child')
150
- end
151
- end
152
- end
153
-
154
- # Regression test for https://github.com/spree/spree/issues/2620
155
- context "creating a child node using first_or_create" do
156
- let(:taxonomy) { create(:taxonomy) }
157
-
158
- it "does not error out" do
159
- taxonomy.root.children.unscoped.where(name: "Some name").first_or_create
160
- end
161
- end
162
-
163
- context 'leaves of the taxon tree' do
164
- let(:taxonomy) { create(:taxonomy, name: 't') }
165
- let(:root) { taxonomy.root }
166
- let(:taxon) { create(:taxon, name: 't1', taxonomy: taxonomy, parent: root) }
167
- let(:child) { create(:taxon, name: 'child taxon', taxonomy: taxonomy, parent: taxon) }
168
- let(:grandchild) { create(:taxon, name: 'grandchild taxon', taxonomy: taxonomy, parent: child) }
169
- let(:product1) { create(:product) }
170
- let(:product2) { create(:product) }
171
- let(:product3) { create(:product) }
172
- before do
173
- product1.taxons << taxon
174
- product2.taxons << child
175
- product3.taxons << grandchild
176
- taxon.reload
177
-
178
- [product1, product2, product3].each { |p| 2.times.each { create(:variant, product: p) } }
179
- end
180
-
181
- describe '#all_products' do
182
- it 'returns all descendant products' do
183
- products = taxon.all_products
184
- expect(products.count).to eq(3)
185
- expect(products).to match_array([product1, product2, product3])
186
- end
187
- end
188
-
189
- describe '#all_variants' do
190
- it 'returns all descendant variants' do
191
- variants = taxon.all_variants
192
- expect(variants.count).to eq(9)
193
- expect(variants).to match_array([product1, product2, product3].map{ |p| p.variants_including_master }.flatten)
194
- end
195
- end
196
- end
197
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Taxonomy, type: :model do
6
- context "#destroy" do
7
- subject(:association_options) do
8
- described_class.reflect_on_association(:root).options
9
- end
10
-
11
- it "should destroy all associated taxons" do
12
- expect(association_options[:dependent]).to eq :destroy
13
- end
14
- end
15
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe "Spree::Taxon::PaperclipAttachment", type: :model do
6
- describe "#destroy_attachment" do
7
- let(:taxon) { create(:taxon) }
8
-
9
- context "when trying to destroy a valid attachment definition" do
10
- context "and taxon has a file attached " do
11
- it "removes the attachment" do
12
- taxon.update(icon: File.new(Rails.root.join('..', '..', 'spec', 'fixtures', 'thinking-cat.jpg')))
13
- expect(taxon.destroy_attachment(:icon)).to be_truthy
14
- end
15
- end
16
- context "and the taxon does not have any file attached yet" do
17
- it "returns false" do
18
- expect(taxon.destroy_attachment(:icon)).to be_falsey
19
- end
20
- end
21
- end
22
-
23
- context "when trying to destroy an invalid attachment" do
24
- it 'returns false' do
25
- expect(taxon.destroy_attachment(:foo)).to be_falsey
26
- end
27
- end
28
- end
29
- end