solidus_core 2.2.2 → 2.3.0.beta1

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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -7
  3. data/app/assets/javascripts/spree.js.erb +2 -2
  4. data/app/helpers/spree/base_helper.rb +3 -4
  5. data/app/models/spree/address.rb +1 -1
  6. data/app/models/spree/adjustment.rb +3 -1
  7. data/app/models/spree/app_configuration.rb +43 -0
  8. data/app/models/spree/billing_integration.rb +2 -2
  9. data/app/models/spree/calculator/default_tax.rb +3 -1
  10. data/app/models/spree/calculator/distributed_amount.rb +24 -0
  11. data/app/models/spree/calculator/free_shipping.rb +0 -1
  12. data/app/models/spree/calculator/tiered_flat_rate.rb +17 -3
  13. data/app/models/spree/calculator/tiered_percent.rb +18 -3
  14. data/app/models/spree/distributed_amounts_handler.rb +43 -0
  15. data/app/models/spree/gateway/bogus.rb +7 -83
  16. data/app/models/spree/gateway/bogus_simple.rb +7 -20
  17. data/app/models/spree/gateway.rb +8 -58
  18. data/app/models/spree/image.rb +1 -1
  19. data/app/models/spree/line_item.rb +1 -1
  20. data/app/models/spree/option_value.rb +1 -1
  21. data/app/models/spree/order/checkout.rb +1 -4
  22. data/app/models/spree/order/number_generator.rb +43 -0
  23. data/app/models/spree/order.rb +33 -38
  24. data/app/models/spree/order_contents.rb +1 -1
  25. data/app/models/spree/order_taxation.rb +79 -0
  26. data/app/models/spree/order_update_attributes.rb +0 -2
  27. data/app/models/spree/order_updater.rb +55 -33
  28. data/app/models/spree/payment.rb +0 -1
  29. data/app/models/spree/payment_method/bogus_credit_card.rb +87 -0
  30. data/app/models/spree/payment_method/check.rb +14 -6
  31. data/app/models/spree/payment_method/credit_card.rb +41 -0
  32. data/app/models/spree/payment_method/simple_bogus_credit_card.rb +24 -0
  33. data/app/models/spree/payment_method/store_credit.rb +5 -13
  34. data/app/models/spree/payment_method.rb +126 -40
  35. data/app/models/spree/preferences/preferable.rb +5 -1
  36. data/app/models/spree/preferences/store.rb +2 -2
  37. data/app/models/spree/product/scopes.rb +14 -1
  38. data/app/models/spree/product.rb +10 -4
  39. data/app/models/spree/promotion_action.rb +4 -0
  40. data/app/models/spree/promotion_code/batch_builder.rb +3 -2
  41. data/app/models/spree/promotion_rule.rb +4 -0
  42. data/app/models/spree/role.rb +2 -0
  43. data/app/models/spree/role_user.rb +2 -0
  44. data/app/models/spree/shipment.rb +4 -2
  45. data/app/models/spree/shipping_method.rb +3 -1
  46. data/app/models/spree/shipping_rate.rb +1 -1
  47. data/app/models/spree/state.rb +10 -2
  48. data/app/models/spree/stock_item.rb +3 -3
  49. data/app/models/spree/store.rb +5 -0
  50. data/app/models/spree/store_credit.rb +2 -2
  51. data/app/models/spree/store_credit_event.rb +1 -1
  52. data/app/models/spree/store_selector/by_server_name.rb +30 -0
  53. data/app/models/spree/store_selector/legacy.rb +48 -0
  54. data/app/models/spree/tax/item_tax.rb +20 -0
  55. data/app/models/spree/tax/order_adjuster.rb +2 -14
  56. data/app/models/spree/tax/order_tax.rb +18 -0
  57. data/app/models/spree/tax/shipping_rate_taxer.rb +4 -13
  58. data/app/models/spree/tax/tax_helpers.rb +5 -3
  59. data/app/models/spree/tax_calculator/default.rb +83 -0
  60. data/app/models/spree/tax_calculator/shipping_rate.rb +46 -0
  61. data/app/models/spree/tax_category.rb +9 -1
  62. data/app/models/spree/tax_rate.rb +31 -7
  63. data/app/models/spree/tax_rate_tax_category.rb +6 -0
  64. data/app/models/spree/taxon.rb +1 -1
  65. data/app/models/spree/variant.rb +1 -1
  66. data/app/views/spree/{shipment_mailer → carton_mailer}/shipped_email.html.erb +3 -3
  67. data/app/views/spree/order_mailer/cancel_email.html.erb +3 -3
  68. data/app/views/spree/order_mailer/confirm_email.html.erb +2 -2
  69. data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +26 -0
  70. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +2 -2
  71. data/app/views/spree/test_mailer/test_email.html.erb +2 -2
  72. data/config/locales/en.yml +66 -57
  73. data/db/default/spree/refund_reasons.rb +1 -0
  74. data/db/default/spree/shipping_categories.rb +1 -0
  75. data/db/default/spree/stock_locations.rb +2 -0
  76. data/db/default/spree/stores.rb +3 -4
  77. data/db/migrate/20170412103617_transform_tax_rate_category_relation.rb +48 -0
  78. data/db/migrate/20170422134804_add_roles_unique_constraints.rb +6 -0
  79. data/db/migrate/20170522143442_add_time_range_to_tax_rate.rb +6 -0
  80. data/db/migrate/20170608074534_rename_bogus_gateways.rb +13 -0
  81. data/lib/generators/spree/custom_user/custom_user_generator.rb +1 -1
  82. data/lib/generators/spree/dummy/dummy_generator.rb +10 -4
  83. data/lib/generators/spree/dummy/templates/rails/database.yml +12 -12
  84. data/lib/generators/spree/install/install_generator.rb +5 -5
  85. data/lib/generators/spree/install/templates/config/initializers/{spree.rb → solidus.rb} +0 -0
  86. data/lib/solidus/migrations/rename_gateways.rb +39 -0
  87. data/lib/spree/core/controller_helpers/auth.rb +1 -1
  88. data/lib/spree/core/controller_helpers/order.rb +10 -5
  89. data/lib/spree/core/controller_helpers/store.rb +1 -9
  90. data/lib/spree/core/current_store.rb +6 -14
  91. data/lib/spree/core/engine.rb +4 -3
  92. data/lib/spree/core/importer/order.rb +4 -4
  93. data/lib/spree/core/version.rb +1 -1
  94. data/lib/spree/core.rb +0 -1
  95. data/lib/spree/localized_number.rb +2 -1
  96. data/lib/spree/permitted_attributes.rb +12 -6
  97. data/lib/spree/testing_support/capybara_ext.rb +0 -1
  98. data/lib/spree/testing_support/factories/adjustment_factory.rb +5 -1
  99. data/lib/spree/testing_support/factories/order_factory.rb +26 -24
  100. data/lib/spree/testing_support/factories/payment_factory.rb +4 -0
  101. data/lib/spree/testing_support/factories/payment_method_factory.rb +3 -3
  102. data/lib/spree/testing_support/factories/shipment_factory.rb +7 -3
  103. data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -1
  104. data/lib/spree/testing_support/factories/variant_factory.rb +3 -1
  105. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -4
  106. data/lib/tasks/migrations/migrate_user_addresses.rake +2 -2
  107. data/lib/tasks/migrations/rename_gateways.rake +19 -0
  108. data/solidus_core.gemspec +2 -3
  109. data/spec/lib/spree/core/controller_helpers/order_spec.rb +32 -6
  110. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -1
  111. data/spec/lib/spree/core/current_store_spec.rb +6 -11
  112. data/spec/lib/spree/core/price_migrator_spec.rb +4 -4
  113. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +199 -91
  114. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +18 -0
  115. data/spec/lib/spree/localized_number_spec.rb +6 -0
  116. data/spec/mailers/carton_mailer_spec.rb +3 -3
  117. data/spec/models/spree/address_spec.rb +3 -3
  118. data/spec/models/spree/adjustment_spec.rb +71 -27
  119. data/spec/models/spree/calculator/default_tax_spec.rb +72 -1
  120. data/spec/models/spree/calculator/distributed_amount_spec.rb +32 -0
  121. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +20 -1
  122. data/spec/models/spree/calculator/tiered_percent_spec.rb +20 -1
  123. data/spec/models/spree/distributed_amounts_handler_spec.rb +79 -0
  124. data/spec/models/spree/gateway/bogus_simple.rb +7 -13
  125. data/spec/models/spree/gateway/bogus_spec.rb +8 -4
  126. data/spec/models/spree/gateway_spec.rb +6 -105
  127. data/spec/models/spree/image_spec.rb +23 -0
  128. data/spec/models/spree/order/checkout_spec.rb +3 -18
  129. data/spec/models/spree/order/number_generator_spec.rb +45 -0
  130. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +135 -0
  131. data/spec/models/spree/order/payment_spec.rb +7 -2
  132. data/spec/models/spree/order/state_machine_spec.rb +4 -2
  133. data/spec/models/spree/order_capturing_spec.rb +8 -8
  134. data/spec/models/spree/order_contents_spec.rb +8 -1
  135. data/spec/models/spree/order_shipping_spec.rb +5 -1
  136. data/spec/models/spree/order_spec.rb +156 -83
  137. data/spec/models/spree/order_taxation_spec.rb +126 -0
  138. data/spec/models/spree/order_update_attributes_spec.rb +1 -5
  139. data/spec/models/spree/order_updater_spec.rb +20 -21
  140. data/spec/models/spree/payment_create_spec.rb +14 -6
  141. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +8 -0
  142. data/spec/models/spree/payment_method/check_spec.rb +78 -0
  143. data/spec/models/spree/payment_method/credit_card_spec.rb +66 -0
  144. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +18 -0
  145. data/spec/models/spree/payment_method_spec.rb +47 -2
  146. data/spec/models/spree/payment_spec.rb +6 -8
  147. data/spec/models/spree/preference_spec.rb +1 -1
  148. data/spec/models/spree/price_spec.rb +1 -1
  149. data/spec/models/spree/product/scopes_spec.rb +46 -0
  150. data/spec/models/spree/promotion_action_spec.rb +4 -0
  151. data/spec/models/spree/promotion_code/batch_builder_spec.rb +25 -3
  152. data/spec/models/spree/promotion_code_batch_spec.rb +0 -6
  153. data/spec/models/spree/promotion_handler/coupon_spec.rb +1 -1
  154. data/spec/models/spree/promotion_rule_spec.rb +5 -0
  155. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +1 -1
  156. data/spec/models/spree/shipment_spec.rb +24 -3
  157. data/spec/models/spree/shipping_rate_spec.rb +5 -5
  158. data/spec/models/spree/state_spec.rb +31 -4
  159. data/spec/models/spree/stock/coordinator_spec.rb +24 -0
  160. data/spec/models/spree/stock/estimator_spec.rb +1 -1
  161. data/spec/models/spree/store_selector/by_server_name_spec.rb +26 -0
  162. data/spec/models/spree/store_selector/legacy_spec.rb +44 -0
  163. data/spec/models/spree/store_spec.rb +10 -2
  164. data/spec/models/spree/tax/order_adjuster_spec.rb +11 -21
  165. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +10 -3
  166. data/spec/models/spree/tax/taxation_integration_spec.rb +43 -8
  167. data/spec/models/spree/tax_calculator/default_spec.rb +54 -0
  168. data/spec/models/spree/tax_rate_spec.rb +92 -0
  169. data/spec/models/spree/variant/vat_price_generator_spec.rb +4 -4
  170. data/spec/models/spree/variant_spec.rb +8 -2
  171. data/spec/spec_helper.rb +2 -1
  172. data/spec/support/test_gateway.rb +1 -1
  173. metadata +45 -24
  174. data/app/models/spree/tax/item_adjuster.rb +0 -51
  175. data/spec/models/spree/tax/item_adjuster_spec.rb +0 -82
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-12 00:00:00.000000000 Z
11
+ date: 2017-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemerchant
@@ -188,42 +188,28 @@ dependencies:
188
188
  requirements:
189
189
  - - "~>"
190
190
  - !ruby/object:Gem::Version
191
- version: 2.2.0.pre
191
+ version: '2.3'
192
192
  type: :runtime
193
193
  prerelease: false
194
194
  version_requirements: !ruby/object:Gem::Requirement
195
195
  requirements:
196
196
  - - "~>"
197
197
  - !ruby/object:Gem::Version
198
- version: 2.2.0.pre
199
- - !ruby/object:Gem::Dependency
200
- name: premailer-rails
201
- requirement: !ruby/object:Gem::Requirement
202
- requirements:
203
- - - ">="
204
- - !ruby/object:Gem::Version
205
- version: '0'
206
- type: :runtime
207
- prerelease: false
208
- version_requirements: !ruby/object:Gem::Requirement
209
- requirements:
210
- - - ">="
211
- - !ruby/object:Gem::Version
212
- version: '0'
198
+ version: '2.3'
213
199
  - !ruby/object:Gem::Dependency
214
200
  name: rails
215
201
  requirement: !ruby/object:Gem::Requirement
216
202
  requirements:
217
203
  - - "~>"
218
204
  - !ruby/object:Gem::Version
219
- version: 5.0.0
205
+ version: 5.1.0
220
206
  type: :runtime
221
207
  prerelease: false
222
208
  version_requirements: !ruby/object:Gem::Requirement
223
209
  requirements:
224
210
  - - "~>"
225
211
  - !ruby/object:Gem::Version
226
- version: 5.0.0
212
+ version: 5.1.0
227
213
  - !ruby/object:Gem::Dependency
228
214
  name: ransack
229
215
  requirement: !ruby/object:Gem::Requirement
@@ -387,6 +373,7 @@ files:
387
373
  - app/models/spree/billing_integration.rb
388
374
  - app/models/spree/calculator.rb
389
375
  - app/models/spree/calculator/default_tax.rb
376
+ - app/models/spree/calculator/distributed_amount.rb
390
377
  - app/models/spree/calculator/flat_percent_item_total.rb
391
378
  - app/models/spree/calculator/flat_rate.rb
392
379
  - app/models/spree/calculator/flexi_rate.rb
@@ -407,6 +394,7 @@ files:
407
394
  - app/models/spree/country.rb
408
395
  - app/models/spree/credit_card.rb
409
396
  - app/models/spree/customer_return.rb
397
+ - app/models/spree/distributed_amounts_handler.rb
410
398
  - app/models/spree/exchange.rb
411
399
  - app/models/spree/gateway.rb
412
400
  - app/models/spree/gateway/bogus.rb
@@ -422,6 +410,7 @@ files:
422
410
  - app/models/spree/option_values_variant.rb
423
411
  - app/models/spree/order.rb
424
412
  - app/models/spree/order/checkout.rb
413
+ - app/models/spree/order/number_generator.rb
425
414
  - app/models/spree/order/payments.rb
426
415
  - app/models/spree/order_cancellations.rb
427
416
  - app/models/spree/order_capturing.rb
@@ -432,6 +421,7 @@ files:
432
421
  - app/models/spree/order_promotion.rb
433
422
  - app/models/spree/order_shipping.rb
434
423
  - app/models/spree/order_stock_location.rb
424
+ - app/models/spree/order_taxation.rb
435
425
  - app/models/spree/order_update_attributes.rb
436
426
  - app/models/spree/order_updater.rb
437
427
  - app/models/spree/payment.rb
@@ -439,7 +429,10 @@ files:
439
429
  - app/models/spree/payment_capture_event.rb
440
430
  - app/models/spree/payment_create.rb
441
431
  - app/models/spree/payment_method.rb
432
+ - app/models/spree/payment_method/bogus_credit_card.rb
442
433
  - app/models/spree/payment_method/check.rb
434
+ - app/models/spree/payment_method/credit_card.rb
435
+ - app/models/spree/payment_method/simple_bogus_credit_card.rb
443
436
  - app/models/spree/payment_method/store_credit.rb
444
437
  - app/models/spree/payment_source.rb
445
438
  - app/models/spree/preference.rb
@@ -557,13 +550,19 @@ files:
557
550
  - app/models/spree/store_credit_type.rb
558
551
  - app/models/spree/store_credit_update_reason.rb
559
552
  - app/models/spree/store_payment_method.rb
560
- - app/models/spree/tax/item_adjuster.rb
553
+ - app/models/spree/store_selector/by_server_name.rb
554
+ - app/models/spree/store_selector/legacy.rb
555
+ - app/models/spree/tax/item_tax.rb
561
556
  - app/models/spree/tax/order_adjuster.rb
557
+ - app/models/spree/tax/order_tax.rb
562
558
  - app/models/spree/tax/shipping_rate_taxer.rb
563
559
  - app/models/spree/tax/tax_helpers.rb
564
560
  - app/models/spree/tax/tax_location.rb
561
+ - app/models/spree/tax_calculator/default.rb
562
+ - app/models/spree/tax_calculator/shipping_rate.rb
565
563
  - app/models/spree/tax_category.rb
566
564
  - app/models/spree/tax_rate.rb
565
+ - app/models/spree/tax_rate_tax_category.rb
567
566
  - app/models/spree/taxon.rb
568
567
  - app/models/spree/taxonomy.rb
569
568
  - app/models/spree/transfer_item.rb
@@ -587,11 +586,13 @@ files:
587
586
  - app/models/spree/zone.rb
588
587
  - app/models/spree/zone_member.rb
589
588
  - app/views/layouts/spree/base_mailer.html.erb
589
+ - app/views/spree/carton_mailer/shipped_email.html.erb
590
590
  - app/views/spree/carton_mailer/shipped_email.text.erb
591
591
  - app/views/spree/order_mailer/cancel_email.html.erb
592
592
  - app/views/spree/order_mailer/cancel_email.text.erb
593
593
  - app/views/spree/order_mailer/confirm_email.html.erb
594
594
  - app/views/spree/order_mailer/confirm_email.text.erb
595
+ - app/views/spree/order_mailer/inventory_cancellation_email.html.erb
595
596
  - app/views/spree/order_mailer/inventory_cancellation_email.text.erb
596
597
  - app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb
597
598
  - app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb
@@ -600,16 +601,18 @@ files:
600
601
  - app/views/spree/shared/_base_mailer_footer.html.erb
601
602
  - app/views/spree/shared/_base_mailer_header.html.erb
602
603
  - app/views/spree/shared/_error_messages.html.erb
603
- - app/views/spree/shipment_mailer/shipped_email.html.erb
604
604
  - app/views/spree/test_mailer/test_email.html.erb
605
605
  - app/views/spree/test_mailer/test_email.text.erb
606
606
  - config/initializers/assets.rb
607
607
  - config/initializers/friendly_id.rb
608
608
  - config/locales/en.yml
609
609
  - db/default/spree/countries.rb
610
+ - db/default/spree/refund_reasons.rb
610
611
  - db/default/spree/return_reasons.rb
611
612
  - db/default/spree/roles.rb
613
+ - db/default/spree/shipping_categories.rb
612
614
  - db/default/spree/states.rb
615
+ - db/default/spree/stock_locations.rb
613
616
  - db/default/spree/store_credit.rb
614
617
  - db/default/spree/stores.rb
615
618
  - db/default/spree/zones.rb
@@ -918,6 +921,10 @@ files:
918
921
  - db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb
919
922
  - db/migrate/20161129035810_add_index_to_spree_payments_number.rb
920
923
  - db/migrate/20170223235001_remove_spree_store_credits_column.rb
924
+ - db/migrate/20170412103617_transform_tax_rate_category_relation.rb
925
+ - db/migrate/20170422134804_add_roles_unique_constraints.rb
926
+ - db/migrate/20170522143442_add_time_range_to_tax_rate.rb
927
+ - db/migrate/20170608074534_rename_bogus_gateways.rb
921
928
  - db/seeds.rb
922
929
  - lib/generators/spree/custom_user/custom_user_generator.rb
923
930
  - lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt
@@ -931,11 +938,12 @@ files:
931
938
  - lib/generators/spree/dummy/templates/rails/script/rails
932
939
  - lib/generators/spree/dummy/templates/rails/test.rb
933
940
  - lib/generators/spree/install/install_generator.rb
934
- - lib/generators/spree/install/templates/config/initializers/spree.rb
941
+ - lib/generators/spree/install/templates/config/initializers/solidus.rb
935
942
  - lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js
936
943
  - lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js
937
944
  - lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css
938
945
  - lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css
946
+ - lib/solidus/migrations/rename_gateways.rb
939
947
  - lib/solidus_core.rb
940
948
  - lib/spree/core.rb
941
949
  - lib/spree/core/class_constantizer.rb
@@ -1085,6 +1093,7 @@ files:
1085
1093
  - lib/tasks/migrations/create_vat_prices.rake
1086
1094
  - lib/tasks/migrations/migrate_shipping_rate_taxes.rake
1087
1095
  - lib/tasks/migrations/migrate_user_addresses.rake
1096
+ - lib/tasks/migrations/rename_gateways.rake
1088
1097
  - lib/tasks/order_capturing.rake
1089
1098
  - lib/tasks/upgrade.rake
1090
1099
  - script/rails
@@ -1199,6 +1208,7 @@ files:
1199
1208
  - spec/models/spree/app_configuration_spec.rb
1200
1209
  - spec/models/spree/asset_spec.rb
1201
1210
  - spec/models/spree/calculator/default_tax_spec.rb
1211
+ - spec/models/spree/calculator/distributed_amount_spec.rb
1202
1212
  - spec/models/spree/calculator/flat_percent_item_total_spec.rb
1203
1213
  - spec/models/spree/calculator/flat_rate_spec.rb
1204
1214
  - spec/models/spree/calculator/flexi_rate_spec.rb
@@ -1224,10 +1234,12 @@ files:
1224
1234
  - spec/models/spree/country_spec.rb
1225
1235
  - spec/models/spree/credit_card_spec.rb
1226
1236
  - spec/models/spree/customer_return_spec.rb
1237
+ - spec/models/spree/distributed_amounts_handler_spec.rb
1227
1238
  - spec/models/spree/exchange_spec.rb
1228
1239
  - spec/models/spree/gateway/bogus_simple.rb
1229
1240
  - spec/models/spree/gateway/bogus_spec.rb
1230
1241
  - spec/models/spree/gateway_spec.rb
1242
+ - spec/models/spree/image_spec.rb
1231
1243
  - spec/models/spree/inventory_unit_spec.rb
1232
1244
  - spec/models/spree/line_item_spec.rb
1233
1245
  - spec/models/spree/option_type_spec.rb
@@ -1237,6 +1249,8 @@ files:
1237
1249
  - spec/models/spree/order/callbacks_spec.rb
1238
1250
  - spec/models/spree/order/checkout_spec.rb
1239
1251
  - spec/models/spree/order/finalizing_spec.rb
1252
+ - spec/models/spree/order/number_generator_spec.rb
1253
+ - spec/models/spree/order/outstanding_balance_integration_spec.rb
1240
1254
  - spec/models/spree/order/payment_spec.rb
1241
1255
  - spec/models/spree/order/risk_assessment_spec.rb
1242
1256
  - spec/models/spree/order/state_machine_spec.rb
@@ -1254,9 +1268,14 @@ files:
1254
1268
  - spec/models/spree/order_shipping_spec.rb
1255
1269
  - spec/models/spree/order_spec.rb
1256
1270
  - spec/models/spree/order_stock_location_spec.rb
1271
+ - spec/models/spree/order_taxation_spec.rb
1257
1272
  - spec/models/spree/order_update_attributes_spec.rb
1258
1273
  - spec/models/spree/order_updater_spec.rb
1259
1274
  - spec/models/spree/payment_create_spec.rb
1275
+ - spec/models/spree/payment_method/bogus_credit_card_spec.rb
1276
+ - spec/models/spree/payment_method/check_spec.rb
1277
+ - spec/models/spree/payment_method/credit_card_spec.rb
1278
+ - spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb
1260
1279
  - spec/models/spree/payment_method/store_credit_spec.rb
1261
1280
  - spec/models/spree/payment_method_spec.rb
1262
1281
  - spec/models/spree/payment_spec.rb
@@ -1371,12 +1390,14 @@ files:
1371
1390
  - spec/models/spree/store_credit_category_spec.rb
1372
1391
  - spec/models/spree/store_credit_event_spec.rb
1373
1392
  - spec/models/spree/store_credit_spec.rb
1393
+ - spec/models/spree/store_selector/by_server_name_spec.rb
1394
+ - spec/models/spree/store_selector/legacy_spec.rb
1374
1395
  - spec/models/spree/store_spec.rb
1375
- - spec/models/spree/tax/item_adjuster_spec.rb
1376
1396
  - spec/models/spree/tax/order_adjuster_spec.rb
1377
1397
  - spec/models/spree/tax/shipping_rate_taxer_spec.rb
1378
1398
  - spec/models/spree/tax/tax_location_spec.rb
1379
1399
  - spec/models/spree/tax/taxation_integration_spec.rb
1400
+ - spec/models/spree/tax_calculator/default_spec.rb
1380
1401
  - spec/models/spree/tax_category_spec.rb
1381
1402
  - spec/models/spree/tax_rate_spec.rb
1382
1403
  - spec/models/spree/taxon_spec.rb
@@ -1,51 +0,0 @@
1
- # @api private
2
- # @note This is a helper class for Tax::OrderAdjuster. It is marked as api
3
- # private because taxes should always be calculated on the entire order, so
4
- # external code should call Tax::OrderAdjuster instead of Tax::ItemAdjuster.
5
- module Spree
6
- module Tax
7
- # Adjust a single taxable item (line item or shipment)
8
- class ItemAdjuster
9
- attr_reader :item, :order
10
-
11
- include TaxHelpers
12
-
13
- # @param [Spree::LineItem,Spree::Shipment] item to adjust
14
- # @param [Hash] options like already known tax rates for the order's zone
15
- def initialize(item, options = {})
16
- @item = item
17
- @order = @item.order
18
- # set instance variable so `TaxRate.match` is only called when necessary
19
- @rates_for_order = options[:rates_for_order]
20
- @rates_for_default_zone = options[:rates_for_default_zone]
21
- end
22
-
23
- # This updates the amounts for adjustments which already exist and
24
- # creates and remove adjustments as needed to match the applicable
25
- # (geographically and category-wise) tax rates.
26
- def adjust!
27
- rates = rates_for_item(item)
28
-
29
- tax_adjustments = item.adjustments.select(&:tax?)
30
- active_adjustments = rates.map do |rate|
31
- # Find an existing adjustment from the same source.
32
- # All tax adjustments already have source_type == 'Spree::TaxRate' so
33
- # we need only check source_id.
34
- adjustment = tax_adjustments.detect{|a| a.source_id == rate.id }
35
- if adjustment
36
- adjustment.update!
37
- adjustment
38
- else
39
- # Create a new adjustment
40
- rate.adjust(nil, item)
41
- end
42
- end
43
-
44
- unmatched_adjustments = tax_adjustments - active_adjustments
45
-
46
- # Remove any tax adjustments tied to rates which no longer match
47
- item.adjustments.destroy(unmatched_adjustments)
48
- end
49
- end
50
- end
51
- end
@@ -1,82 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Spree::Tax::ItemAdjuster do
4
- subject(:adjuster) { described_class.new(item) }
5
- let(:order) { create(:order) }
6
- let(:item) { create(:line_item, order: order) }
7
-
8
- def tax_adjustments
9
- item.adjustments.tax.to_a
10
- end
11
-
12
- describe 'initialization' do
13
- it 'sets order to item order' do
14
- expect(adjuster.order).to eq(item.order)
15
- end
16
-
17
- it 'sets adjustable' do
18
- expect(adjuster.item).to eq(item)
19
- end
20
- end
21
-
22
- shared_examples_for 'untaxed item' do
23
- it 'creates no adjustments' do
24
- adjuster.adjust!
25
- expect(tax_adjustments).to eq([])
26
- end
27
-
28
- context 'with an existing tax adjustment' do
29
- let!(:existing_adjustment) { create(:tax_adjustment, adjustable: item) }
30
-
31
- it 'removes the existing adjustment' do
32
- adjuster.adjust!
33
- aggregate_failures do
34
- expect(tax_adjustments).to eq([])
35
- expect(Spree::Adjustment).to_not be_exists(existing_adjustment.id)
36
- end
37
- end
38
- end
39
- end
40
-
41
- describe '#adjust!' do
42
- before do
43
- expect(order).to receive(:tax_address).at_least(:once).and_return(address)
44
- end
45
-
46
- context 'when the order has no tax zone' do
47
- let(:address) { Spree::Tax::TaxLocation.new }
48
-
49
- it_behaves_like 'untaxed item'
50
- end
51
-
52
- context 'when the order has a taxable address' do
53
- let(:item) { build_stubbed :line_item, order: order }
54
- let(:address) { order.tax_address }
55
-
56
- before do
57
- expect(Spree::TaxRate).to receive(:for_address).with(order.tax_address).and_return(rates_for_order_zone)
58
- end
59
-
60
- context 'when there are no matching rates' do
61
- let(:rates_for_order_zone) { [] }
62
-
63
- it_behaves_like 'untaxed item'
64
- end
65
-
66
- context 'when there are matching rates for the zone' do
67
- context 'and all rates have the same tax category as the item' do
68
- let(:item) { build_stubbed :line_item, order: order, tax_category: item_tax_category }
69
- let(:item_tax_category) { build_stubbed(:tax_category) }
70
- let(:rate_1) { create :tax_rate, tax_category: item_tax_category }
71
- let(:rate_2) { create :tax_rate }
72
- let(:rates_for_order_zone) { [rate_1, rate_2] }
73
-
74
- it 'creates an adjustment for every matching rate' do
75
- adjuster.adjust!
76
- expect(tax_adjustments.length).to eq(1)
77
- end
78
- end
79
- end
80
- end
81
- end
82
- end