spree_core 3.2.1 → 3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. data/lib/spree/core/version.rb +1 -1
  3. data/spree_core.gemspec +1 -1
  4. metadata +3 -206
  5. data/spec/fixtures/microdata.html +0 -22
  6. data/spec/fixtures/microdata_itemref.html +0 -15
  7. data/spec/fixtures/microdata_no_itemscope.html +0 -20
  8. data/spec/fixtures/thinking-cat.jpg +0 -0
  9. data/spec/helpers/base_helper_spec.rb +0 -200
  10. data/spec/helpers/products_helper_spec.rb +0 -289
  11. data/spec/lib/calculated_adjustments_spec.rb +0 -7
  12. data/spec/lib/i18n_spec.rb +0 -123
  13. data/spec/lib/search/base_spec.rb +0 -86
  14. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -103
  15. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -110
  16. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -17
  17. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -72
  18. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -39
  19. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -22
  20. data/spec/lib/spree/core/importer/order_spec.rb +0 -605
  21. data/spec/lib/spree/core/number_generator_spec.rb +0 -175
  22. data/spec/lib/spree/core/token_generator_spec.rb +0 -24
  23. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  24. data/spec/lib/spree/core_spec.rb +0 -23
  25. data/spec/lib/spree/localized_number_spec.rb +0 -48
  26. data/spec/lib/spree/migrations_spec.rb +0 -36
  27. data/spec/lib/spree/money_spec.rb +0 -122
  28. data/spec/lib/tasks/exchanges_spec.rb +0 -136
  29. data/spec/mailers/order_mailer_spec.rb +0 -122
  30. data/spec/mailers/reimbursement_mailer_spec.rb +0 -47
  31. data/spec/mailers/shipment_mailer_spec.rb +0 -81
  32. data/spec/mailers/test_mailer_spec.rb +0 -38
  33. data/spec/models/option_type_prototype_spec.rb +0 -9
  34. data/spec/models/spree/ability_spec.rb +0 -251
  35. data/spec/models/spree/address_spec.rb +0 -402
  36. data/spec/models/spree/adjustable/adjuster/base_spec.rb +0 -10
  37. data/spec/models/spree/adjustable/adjuster/promotion_spec.rb +0 -211
  38. data/spec/models/spree/adjustable/adjuster/tax_spec.rb +0 -86
  39. data/spec/models/spree/adjustable/adjustments_updater_spec.rb +0 -26
  40. data/spec/models/spree/adjustment_spec.rb +0 -189
  41. data/spec/models/spree/app_configuration_spec.rb +0 -26
  42. data/spec/models/spree/asset_spec.rb +0 -28
  43. data/spec/models/spree/calculator/default_tax_spec.rb +0 -152
  44. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -25
  45. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -47
  46. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -41
  47. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -15
  48. data/spec/models/spree/calculator/price_sack_spec.rb +0 -30
  49. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -47
  50. data/spec/models/spree/calculator/shipping.rb +0 -8
  51. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -23
  52. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -13
  53. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -52
  54. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -20
  55. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -29
  56. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -40
  57. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -51
  58. data/spec/models/spree/calculator_spec.rb +0 -69
  59. data/spec/models/spree/classification_spec.rb +0 -93
  60. data/spec/models/spree/concerns/display_money_spec.rb +0 -43
  61. data/spec/models/spree/concerns/user_methods_spec.rb +0 -82
  62. data/spec/models/spree/concerns/vat_price_calculation_spec.rb +0 -66
  63. data/spec/models/spree/country_spec.rb +0 -55
  64. data/spec/models/spree/credit_card_spec.rb +0 -328
  65. data/spec/models/spree/customer_return_spec.rb +0 -240
  66. data/spec/models/spree/exchange_spec.rb +0 -75
  67. data/spec/models/spree/gateway/bogus_simple.rb +0 -20
  68. data/spec/models/spree/gateway/bogus_spec.rb +0 -13
  69. data/spec/models/spree/gateway_spec.rb +0 -61
  70. data/spec/models/spree/image_spec.rb +0 -8
  71. data/spec/models/spree/inventory_unit_spec.rb +0 -256
  72. data/spec/models/spree/line_item_spec.rb +0 -346
  73. data/spec/models/spree/option_type_spec.rb +0 -14
  74. data/spec/models/spree/option_value_spec.rb +0 -18
  75. data/spec/models/spree/order/address_spec.rb +0 -50
  76. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  77. data/spec/models/spree/order/callbacks_spec.rb +0 -42
  78. data/spec/models/spree/order/checkout_spec.rb +0 -770
  79. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
  80. data/spec/models/spree/order/finalizing_spec.rb +0 -114
  81. data/spec/models/spree/order/helpers_spec.rb +0 -5
  82. data/spec/models/spree/order/payment_spec.rb +0 -214
  83. data/spec/models/spree/order/risk_assessment_spec.rb +0 -84
  84. data/spec/models/spree/order/shipments_spec.rb +0 -43
  85. data/spec/models/spree/order/state_machine_spec.rb +0 -212
  86. data/spec/models/spree/order/store_credit_spec.rb +0 -426
  87. data/spec/models/spree/order/tax_spec.rb +0 -84
  88. data/spec/models/spree/order/totals_spec.rb +0 -24
  89. data/spec/models/spree/order/updating_spec.rb +0 -18
  90. data/spec/models/spree/order/validations_spec.rb +0 -15
  91. data/spec/models/spree/order_contents_spec.rb +0 -297
  92. data/spec/models/spree/order_inventory_spec.rb +0 -239
  93. data/spec/models/spree/order_merger_spec.rb +0 -135
  94. data/spec/models/spree/order_spec.rb +0 -1046
  95. data/spec/models/spree/order_updater_spec.rb +0 -305
  96. data/spec/models/spree/payment/gateway_options_spec.rb +0 -127
  97. data/spec/models/spree/payment/store_credit_spec.rb +0 -60
  98. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -291
  99. data/spec/models/spree/payment_method_spec.rb +0 -103
  100. data/spec/models/spree/payment_spec.rb +0 -919
  101. data/spec/models/spree/preference_spec.rb +0 -80
  102. data/spec/models/spree/preferences/configuration_spec.rb +0 -30
  103. data/spec/models/spree/preferences/preferable_spec.rb +0 -344
  104. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -58
  105. data/spec/models/spree/preferences/store_spec.rb +0 -46
  106. data/spec/models/spree/price_spec.rb +0 -128
  107. data/spec/models/spree/product/scopes_spec.rb +0 -183
  108. data/spec/models/spree/product_duplicator_spec.rb +0 -103
  109. data/spec/models/spree/product_filter_spec.rb +0 -26
  110. data/spec/models/spree/product_option_type_spec.rb +0 -9
  111. data/spec/models/spree/product_promotion_rule_spec.rb +0 -9
  112. data/spec/models/spree/product_property_spec.rb +0 -26
  113. data/spec/models/spree/product_spec.rb +0 -629
  114. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -113
  115. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -148
  116. data/spec/models/spree/promotion/actions/create_line_items_spec.rb +0 -86
  117. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -36
  118. data/spec/models/spree/promotion/rules/country_spec.rb +0 -36
  119. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -75
  120. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -282
  121. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -42
  122. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -90
  123. data/spec/models/spree/promotion/rules/product_spec.rb +0 -143
  124. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -102
  125. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -27
  126. data/spec/models/spree/promotion/rules/user_spec.rb +0 -45
  127. data/spec/models/spree/promotion_action_spec.rb +0 -10
  128. data/spec/models/spree/promotion_category_spec.rb +0 -17
  129. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -102
  130. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -323
  131. data/spec/models/spree/promotion_handler/free_shipping_spec.rb +0 -48
  132. data/spec/models/spree/promotion_handler/page_spec.rb +0 -44
  133. data/spec/models/spree/promotion_rule_spec.rb +0 -29
  134. data/spec/models/spree/promotion_rule_taxon_spec.rb +0 -9
  135. data/spec/models/spree/promotion_rule_user_spec.rb +0 -9
  136. data/spec/models/spree/promotion_spec.rb +0 -679
  137. data/spec/models/spree/property_prototype_spec.rb +0 -9
  138. data/spec/models/spree/property_spec.rb +0 -5
  139. data/spec/models/spree/prototype_spec.rb +0 -5
  140. data/spec/models/spree/prototype_taxon_spec.rb +0 -9
  141. data/spec/models/spree/refund_reason_spec.rb +0 -20
  142. data/spec/models/spree/refund_spec.rb +0 -195
  143. data/spec/models/spree/reimbursement/credit_spec.rb +0 -36
  144. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -140
  145. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -83
  146. data/spec/models/spree/reimbursement_performer_spec.rb +0 -30
  147. data/spec/models/spree/reimbursement_spec.rb +0 -188
  148. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -63
  149. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -53
  150. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -46
  151. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -55
  152. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -101
  153. data/spec/models/spree/return_authorization_reason_spec.rb +0 -7
  154. data/spec/models/spree/return_authorization_spec.rb +0 -230
  155. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -77
  156. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -58
  157. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -61
  158. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -32
  159. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -29
  160. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -35
  161. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -65
  162. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  163. data/spec/models/spree/return_item_spec.rb +0 -731
  164. data/spec/models/spree/returns_calculator_spec.rb +0 -14
  165. data/spec/models/spree/role_spec.rb +0 -7
  166. data/spec/models/spree/shipment_spec.rb +0 -742
  167. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  168. data/spec/models/spree/shipping_category_spec.rb +0 -19
  169. data/spec/models/spree/shipping_method_spec.rb +0 -95
  170. data/spec/models/spree/shipping_rate_spec.rb +0 -140
  171. data/spec/models/spree/state_spec.rb +0 -29
  172. data/spec/models/spree/stock/availability_validator_spec.rb +0 -36
  173. data/spec/models/spree/stock/content_item_spec.rb +0 -31
  174. data/spec/models/spree/stock/coordinator_spec.rb +0 -61
  175. data/spec/models/spree/stock/differentiator_spec.rb +0 -39
  176. data/spec/models/spree/stock/estimator_spec.rb +0 -202
  177. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -38
  178. data/spec/models/spree/stock/package_spec.rb +0 -182
  179. data/spec/models/spree/stock/packer_spec.rb +0 -70
  180. data/spec/models/spree/stock/prioritizer_spec.rb +0 -125
  181. data/spec/models/spree/stock/quantifier_spec.rb +0 -126
  182. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -29
  183. data/spec/models/spree/stock/splitter/base_spec.rb +0 -21
  184. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -47
  185. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -32
  186. data/spec/models/spree/stock_item_spec.rb +0 -432
  187. data/spec/models/spree/stock_location_spec.rb +0 -243
  188. data/spec/models/spree/stock_movement_spec.rb +0 -120
  189. data/spec/models/spree/stock_transfer_spec.rb +0 -50
  190. data/spec/models/spree/store_credit_event_spec.rb +0 -101
  191. data/spec/models/spree/store_credit_spec.rb +0 -786
  192. data/spec/models/spree/store_spec.rb +0 -78
  193. data/spec/models/spree/tax_category_spec.rb +0 -32
  194. data/spec/models/spree/tax_rate_spec.rb +0 -561
  195. data/spec/models/spree/taxon_spec.rb +0 -85
  196. data/spec/models/spree/taxonomy_spec.rb +0 -18
  197. data/spec/models/spree/tracker_spec.rb +0 -21
  198. data/spec/models/spree/user_spec.rb +0 -203
  199. data/spec/models/spree/variant_spec.rb +0 -818
  200. data/spec/models/spree/zone_member_spec.rb +0 -38
  201. data/spec/models/spree/zone_spec.rb +0 -472
  202. data/spec/spec_helper.rb +0 -79
  203. data/spec/support/big_decimal.rb +0 -5
  204. data/spec/support/concerns/adjustment_source.rb +0 -23
  205. data/spec/support/concerns/default_price.rb +0 -37
  206. data/spec/support/rake.rb +0 -13
  207. data/spec/support/test_gateway.rb +0 -2
@@ -1,7 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::ReturnAuthorizationReason do
4
- describe 'Associations' do
5
- it { is_expected.to have_many(:return_authorizations).dependent(:restrict_with_error) }
6
- end
7
- end
@@ -1,230 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::ReturnAuthorization, type: :model do
4
- let(:order) { create(:shipped_order) }
5
- let(:stock_location) { create(:stock_location) }
6
- let(:rma_reason) { create(:return_authorization_reason) }
7
- let(:inventory_unit_1) { order.inventory_units.first }
8
-
9
- let(:variant) { order.variants.first }
10
- let(:return_authorization) do
11
- Spree::ReturnAuthorization.new(order: order,
12
- stock_location_id: stock_location.id,
13
- return_authorization_reason_id: rma_reason.id)
14
- end
15
-
16
- context "save" do
17
- let(:order) { Spree::Order.create }
18
-
19
- it "should be invalid when order has no inventory units" do
20
- return_authorization.save
21
- expect(return_authorization.errors[:order]).to eq(["has no shipped units"])
22
- end
23
-
24
- context "expedited exchanges are configured" do
25
- let(:order) { create(:shipped_order, line_items_count: 2) }
26
- let(:exchange_return_item) { create(:exchange_return_item, inventory_unit: order.inventory_units.first) }
27
- let(:return_item) { create(:return_item, inventory_unit: order.inventory_units.last) }
28
- subject { create(:return_authorization, order: order, return_items: [exchange_return_item, return_item]) }
29
-
30
- before do
31
- @expediteted_exchanges_config = Spree::Config[:expedited_exchanges]
32
- Spree::Config[:expedited_exchanges] = true
33
- @pre_exchange_hooks = subject.class.pre_expedited_exchange_hooks
34
- end
35
-
36
- after do
37
- Spree::Config[:expedited_exchanges] = @expediteted_exchanges_config
38
- subject.class.pre_expedited_exchange_hooks = @pre_exchange_hooks
39
- end
40
-
41
- context "no items to exchange" do
42
- subject { create(:return_authorization, order: order) }
43
-
44
- it "does not create a reimbursement" do
45
- expect{subject.save}.to_not change { Spree::Reimbursement.count }
46
- end
47
- end
48
-
49
- context "items to exchange" do
50
- it "calls pre_expedited_exchange hooks with the return items to exchange" do
51
- hook = double(:as_null_object)
52
- expect(hook).to receive(:call).with [exchange_return_item]
53
- subject.class.pre_expedited_exchange_hooks = [hook]
54
- subject.save
55
- end
56
-
57
- it "attempts to accept all return items requiring exchange" do
58
- expect(exchange_return_item).to receive :attempt_accept
59
- expect(return_item).not_to receive :attempt_accept
60
- subject.save
61
- end
62
-
63
- it "performs an exchange reimbursement for the exchange return items" do
64
- subject.save
65
- reimbursement = Spree::Reimbursement.last
66
- expect(reimbursement.order).to eq subject.order
67
- expect(reimbursement.return_items).to eq [exchange_return_item]
68
- expect(exchange_return_item.reload.exchange_shipment).to be_present
69
- end
70
-
71
- context "the reimbursement fails" do
72
- before do
73
- allow_any_instance_of(Spree::Reimbursement).to receive(:save) { false }
74
- allow_any_instance_of(Spree::Reimbursement).to receive(:errors) { double(full_messages: "foo") }
75
- end
76
-
77
- it "puts errors on the return authorization" do
78
- subject.save
79
- expect(subject.errors[:base]).to include "foo"
80
- end
81
- end
82
- end
83
-
84
- end
85
- end
86
-
87
- describe 'whitelisted_ransackable_attributes' do
88
- it { expect(Spree::ReturnAuthorization.whitelisted_ransackable_attributes).to eq(%w(memo number state)) }
89
- end
90
-
91
- context "#currency" do
92
- before { allow(order).to receive(:currency) { "ABC" } }
93
- it "returns the order currency" do
94
- expect(return_authorization.currency).to eq("ABC")
95
- end
96
- end
97
-
98
- describe "#pre_tax_total" do
99
- let(:pre_tax_amount_1) { 15.0 }
100
- let!(:return_item_1) { create(:return_item, return_authorization: return_authorization, pre_tax_amount: pre_tax_amount_1) }
101
-
102
- let(:pre_tax_amount_2) { 50.0 }
103
- let!(:return_item_2) { create(:return_item, return_authorization: return_authorization, pre_tax_amount: pre_tax_amount_2) }
104
-
105
- let(:pre_tax_amount_3) { 5.0 }
106
- let!(:return_item_3) { create(:return_item, return_authorization: return_authorization, pre_tax_amount: pre_tax_amount_3) }
107
-
108
- subject { return_authorization.pre_tax_total }
109
-
110
- it "sums it's associated return_item's pre-tax amounts" do
111
- expect(subject).to eq (pre_tax_amount_1 + pre_tax_amount_2 + pre_tax_amount_3)
112
- end
113
- end
114
-
115
- describe "#display_pre_tax_total" do
116
- it "returns a Spree::Money" do
117
- allow(return_authorization).to receive_messages(pre_tax_total: 21.22)
118
- expect(return_authorization.display_pre_tax_total).to eq(Spree::Money.new(21.22))
119
- end
120
- end
121
-
122
- describe "#refundable_amount" do
123
- let(:weighted_line_item_pre_tax_amount) { 5.0 }
124
- let(:line_item_count) { return_authorization.order.line_items.count }
125
-
126
- subject { return_authorization.refundable_amount }
127
-
128
- before do
129
- return_authorization.order.line_items.update_all(pre_tax_amount: weighted_line_item_pre_tax_amount)
130
- return_authorization.order.update_attribute(:promo_total, promo_total)
131
- end
132
-
133
- context "no promotions" do
134
- let(:promo_total) { 0.0 }
135
- it "returns the pre-tax line item total" do
136
- expect(subject).to eq (weighted_line_item_pre_tax_amount * line_item_count)
137
- end
138
- end
139
-
140
- context "promotions" do
141
- let(:promo_total) { -10.0 }
142
- it "returns the pre-tax line item total minus the order level promotion value" do
143
- expect(subject).to eq (weighted_line_item_pre_tax_amount * line_item_count) + promo_total
144
- end
145
- end
146
- end
147
-
148
- describe "#customer_returned_items?" do
149
- before do
150
- allow_any_instance_of(Spree::Order).to receive_messages(return!: true)
151
- end
152
-
153
- subject { return_authorization.customer_returned_items? }
154
-
155
- context "has associated customer returns" do
156
- let(:customer_return) { create(:customer_return) }
157
- let(:return_authorization) { customer_return.return_authorizations.first }
158
-
159
- it "returns true" do
160
- expect(subject).to eq true
161
- end
162
- end
163
-
164
- context "does not have associated customer returns" do
165
- let(:return_authorization) { create(:return_authorization) }
166
-
167
- it "returns false" do
168
- expect(subject).to eq false
169
- end
170
- end
171
- end
172
-
173
- describe 'cancel_return_items' do
174
- let(:return_authorization) { create(:return_authorization, return_items: return_items) }
175
- let(:return_items) { [return_item] }
176
- let(:return_item) { create(:return_item) }
177
-
178
- subject {
179
- return_authorization.cancel!
180
- }
181
-
182
- it 'cancels the associated return items' do
183
- subject
184
- expect(return_item.reception_status).to eq 'cancelled'
185
- end
186
-
187
- context 'some return items cannot be cancelled' do
188
- let(:return_items) { [return_item, return_item_2] }
189
- let(:return_item_2) { create(:return_item, reception_status: 'received') }
190
-
191
- it 'cancels those that can be cancelled' do
192
- subject
193
- expect(return_item.reception_status).to eq 'cancelled'
194
- expect(return_item_2.reception_status).to eq 'received'
195
- end
196
- end
197
- end
198
-
199
- describe '#can_cancel?' do
200
- subject { create(:return_authorization, return_items: return_items).can_cancel? }
201
- let(:return_items) { [return_item_1, return_item_2] }
202
- let(:return_item_1) { create(:return_item) }
203
- let(:return_item_2) { create(:return_item) }
204
-
205
- context 'all items can be cancelled' do
206
- it 'returns true' do
207
- expect(subject).to eq true
208
- end
209
- end
210
-
211
- context 'at least one return item can be cancelled' do
212
- let(:return_item_2) { create(:return_item, reception_status: 'received') }
213
-
214
- it { should eq true }
215
- end
216
-
217
- context 'no items can be cancelled' do
218
- let(:return_item_1) { create(:return_item, reception_status: 'received') }
219
- let(:return_item_2) { create(:return_item, reception_status: 'received') }
220
-
221
- it { should eq false }
222
- end
223
-
224
- context 'when return_authorization has no return_items' do
225
- let(:return_items) { [] }
226
-
227
- it { should eq true }
228
- end
229
- end
230
- end
@@ -1,77 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::ReturnItem::EligibilityValidator::Default, type: :model do
4
- let(:return_item) { create(:return_item) }
5
- let(:validator) { Spree::ReturnItem::EligibilityValidator::Default.new(return_item) }
6
-
7
- let(:time_eligibility_class) { double("TimeEligibilityValidatorClass") }
8
- let(:rma_eligibility_class) { double("RMAEligibilityValidatorClass") }
9
-
10
- let(:time_eligibility_instance) { double(errors: time_error) }
11
- let(:rma_eligibility_instance) { double(errors: rma_error) }
12
-
13
- let(:time_error) {{}}
14
- let(:rma_error) {{}}
15
-
16
- before do
17
- validator.permitted_eligibility_validators = [ time_eligibility_class, rma_eligibility_class ]
18
-
19
- expect(time_eligibility_class).to receive(:new).and_return(time_eligibility_instance)
20
- expect(rma_eligibility_class).to receive(:new).and_return(rma_eligibility_instance)
21
- end
22
-
23
- describe "#eligible_for_return?" do
24
- subject { validator.eligible_for_return? }
25
-
26
- it "checks that all permitted eligibility validators are eligible for return" do
27
- expect(time_eligibility_instance).to receive(:eligible_for_return?).and_return(true)
28
- expect(rma_eligibility_instance).to receive(:eligible_for_return?).and_return(true)
29
-
30
- expect(subject).to be true
31
- end
32
- end
33
-
34
- describe "#requires_manual_intervention?" do
35
- subject { validator.requires_manual_intervention? }
36
-
37
- context "any of the permitted eligibility validators require manual intervention" do
38
- it "returns true" do
39
- expect(time_eligibility_instance).to receive(:requires_manual_intervention?).and_return(false)
40
- expect(rma_eligibility_instance).to receive(:requires_manual_intervention?).and_return(true)
41
-
42
- expect(subject).to be true
43
- end
44
- end
45
-
46
- context "no permitted eligibility validators require manual intervention" do
47
- it "returns false" do
48
- expect(time_eligibility_instance).to receive(:requires_manual_intervention?).and_return(false)
49
- expect(rma_eligibility_instance).to receive(:requires_manual_intervention?).and_return(false)
50
-
51
- expect(subject).to be false
52
- end
53
- end
54
- end
55
-
56
- describe "#errors" do
57
- subject { validator.errors }
58
-
59
- context "the validator errors are empty" do
60
- it "returns an empty hash" do
61
- expect(subject).to eq({})
62
- end
63
- end
64
-
65
- context "the validators have errors" do
66
- let(:time_error) { { time: time_error_text }}
67
- let(:rma_error) { { rma: rma_error_text }}
68
-
69
- let(:time_error_text) { "Time eligibility error" }
70
- let(:rma_error_text) { "RMA eligibility error" }
71
-
72
- it "gathers all errors from permitted eligibility validators into a single errors hash" do
73
- expect(subject).to eq({time: time_error_text, rma: rma_error_text})
74
- end
75
- end
76
- end
77
- end
@@ -1,58 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::ReturnItem::EligibilityValidator::InventoryShipped do
4
- let(:return_item) { create(:return_item) }
5
- let(:validator) { Spree::ReturnItem::EligibilityValidator::InventoryShipped.new(return_item) }
6
-
7
- describe "#eligible_for_return?" do
8
- before { allow(return_item.inventory_unit).to receive(:shipped?).and_return(true) }
9
-
10
- subject { validator.eligible_for_return? }
11
-
12
- context "the associated inventory unit is shipped" do
13
- it "returns true" do
14
- expect(subject).to eq true
15
- end
16
- end
17
-
18
- context "the associated inventory unit is not shipped" do
19
- before { allow(return_item.inventory_unit).to receive(:shipped?).and_return(false) }
20
-
21
- it "returns false" do
22
- expect(subject).to eq false
23
- end
24
-
25
- it "sets an error" do
26
- subject
27
- expect(validator.errors[:inventory_unit_shipped]).to eq Spree.t('return_item_inventory_unit_ineligible')
28
- end
29
- end
30
- end
31
-
32
- describe "#requires_manual_intervention?" do
33
- subject { validator.requires_manual_intervention? }
34
-
35
- context "not eligible for return" do
36
- before do
37
- allow(return_item.inventory_unit).to receive(:shipped?).and_return(false)
38
- validator.eligible_for_return?
39
- end
40
-
41
- it 'returns true if errors were added' do
42
- expect(subject).to eq true
43
- end
44
- end
45
-
46
- context "eligible for return" do
47
- before do
48
- allow(return_item.inventory_unit).to receive(:shipped?).and_return(true)
49
- validator.eligible_for_return?
50
- end
51
-
52
- it 'returns false if no errors were added' do
53
- expect(subject).to eq false
54
- end
55
- end
56
-
57
- end
58
- end
@@ -1,61 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::ReturnItem::EligibilityValidator::NoReimbursements do
4
- let(:validator) { Spree::ReturnItem::EligibilityValidator::NoReimbursements.new(return_item) }
5
-
6
- describe "#eligible_for_return?" do
7
-
8
- subject { validator.eligible_for_return? }
9
-
10
- context "inventory unit has already been reimbursed" do
11
- let(:reimbursement) { create(:reimbursement) }
12
- let(:return_item) { reimbursement.return_items.last }
13
-
14
- it "returns false" do
15
- expect(subject).to eq false
16
- end
17
-
18
- it "sets an error" do
19
- subject
20
- expect(validator.errors[:inventory_unit_reimbursed]).to eq Spree.t('return_item_inventory_unit_reimbursed')
21
- end
22
- end
23
-
24
- context "inventory unit has not been reimbursed" do
25
- let(:return_item) { create(:return_item) }
26
-
27
- it "returns true" do
28
- expect(subject).to eq true
29
- end
30
- end
31
- end
32
-
33
- describe "#requires_manual_intervention?" do
34
- subject { validator.requires_manual_intervention? }
35
-
36
- context "not eligible for return" do
37
- let(:reimbursement) { create(:reimbursement) }
38
- let(:return_item) { reimbursement.return_items.last }
39
-
40
- before do
41
- validator.eligible_for_return?
42
- end
43
-
44
- it 'returns true if errors were added' do
45
- expect(subject).to eq true
46
- end
47
- end
48
-
49
- context "eligible for return" do
50
- let(:return_item) { create(:return_item) }
51
-
52
- before do
53
- validator.eligible_for_return?
54
- end
55
-
56
- it 'returns false if no errors were added' do
57
- expect(subject).to eq false
58
- end
59
- end
60
- end
61
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::ReturnItem::EligibilityValidator::OrderCompleted do
4
- let(:inventory_unit) { create(:inventory_unit, order: order) }
5
- let(:return_item) { create(:return_item, inventory_unit: inventory_unit) }
6
- let(:validator) { Spree::ReturnItem::EligibilityValidator::OrderCompleted.new(return_item) }
7
-
8
- describe "#eligible_for_return?" do
9
- subject { validator.eligible_for_return? }
10
-
11
- context "the order was completed" do
12
- let(:order) { create(:completed_order_with_totals) }
13
-
14
- it "returns true" do
15
- expect(subject).to be true
16
- end
17
- end
18
-
19
- context "the order is not completed" do
20
- let(:order) { create(:order) }
21
-
22
- it "returns false" do
23
- expect(subject).to be false
24
- end
25
-
26
- it "sets an error" do
27
- subject
28
- expect(validator.errors[:order_not_completed]).to eq Spree.t('return_item_order_not_completed')
29
- end
30
- end
31
- end
32
- end