solidus_core 2.2.2 → 2.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

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