spree_core 3.1.5 → 3.1.6

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 (215) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/concerns/spree/ransackable_attributes.rb +6 -1
  3. data/app/models/concerns/spree/user_methods.rb +10 -0
  4. data/app/models/spree/legacy_user.rb +0 -8
  5. data/app/models/spree/order.rb +1 -1
  6. data/app/models/spree/product.rb +8 -0
  7. data/app/models/spree/product/scopes.rb +7 -3
  8. data/app/models/spree/stock_transfer.rb +1 -1
  9. data/config/locales/en.yml +2 -0
  10. data/lib/spree/core/version.rb +1 -1
  11. data/spree_core.gemspec +2 -2
  12. metadata +11 -208
  13. data/spec/fixtures/microdata.html +0 -22
  14. data/spec/fixtures/microdata_itemref.html +0 -15
  15. data/spec/fixtures/microdata_no_itemscope.html +0 -20
  16. data/spec/fixtures/thinking-cat.jpg +0 -0
  17. data/spec/helpers/base_helper_spec.rb +0 -200
  18. data/spec/helpers/products_helper_spec.rb +0 -296
  19. data/spec/lib/calculated_adjustments_spec.rb +0 -7
  20. data/spec/lib/i18n_spec.rb +0 -123
  21. data/spec/lib/search/base_spec.rb +0 -86
  22. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -103
  23. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -110
  24. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -17
  25. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -72
  26. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -39
  27. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -22
  28. data/spec/lib/spree/core/importer/order_spec.rb +0 -605
  29. data/spec/lib/spree/core/number_generator_spec.rb +0 -175
  30. data/spec/lib/spree/core/token_generator_spec.rb +0 -24
  31. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  32. data/spec/lib/spree/core_spec.rb +0 -23
  33. data/spec/lib/spree/localized_number_spec.rb +0 -48
  34. data/spec/lib/spree/migrations_spec.rb +0 -36
  35. data/spec/lib/spree/money_spec.rb +0 -122
  36. data/spec/lib/tasks/exchanges_spec.rb +0 -136
  37. data/spec/mailers/order_mailer_spec.rb +0 -122
  38. data/spec/mailers/reimbursement_mailer_spec.rb +0 -47
  39. data/spec/mailers/shipment_mailer_spec.rb +0 -81
  40. data/spec/mailers/test_mailer_spec.rb +0 -38
  41. data/spec/models/option_type_prototype_spec.rb +0 -9
  42. data/spec/models/spree/ability_spec.rb +0 -251
  43. data/spec/models/spree/address_spec.rb +0 -291
  44. data/spec/models/spree/adjustable/adjuster/base_spec.rb +0 -10
  45. data/spec/models/spree/adjustable/adjuster/promotion_spec.rb +0 -211
  46. data/spec/models/spree/adjustable/adjuster/tax_spec.rb +0 -86
  47. data/spec/models/spree/adjustable/adjustments_updater_spec.rb +0 -26
  48. data/spec/models/spree/adjustment_spec.rb +0 -189
  49. data/spec/models/spree/app_configuration_spec.rb +0 -26
  50. data/spec/models/spree/asset_spec.rb +0 -28
  51. data/spec/models/spree/calculator/default_tax_spec.rb +0 -152
  52. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -25
  53. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -47
  54. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -41
  55. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -15
  56. data/spec/models/spree/calculator/price_sack_spec.rb +0 -30
  57. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -51
  58. data/spec/models/spree/calculator/shipping.rb +0 -8
  59. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -23
  60. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -13
  61. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -52
  62. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -20
  63. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -29
  64. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -40
  65. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -51
  66. data/spec/models/spree/calculator_spec.rb +0 -69
  67. data/spec/models/spree/classification_spec.rb +0 -93
  68. data/spec/models/spree/concerns/display_money_spec.rb +0 -43
  69. data/spec/models/spree/concerns/user_methods_spec.rb +0 -55
  70. data/spec/models/spree/concerns/vat_price_calculation_spec.rb +0 -66
  71. data/spec/models/spree/country_spec.rb +0 -55
  72. data/spec/models/spree/credit_card_spec.rb +0 -328
  73. data/spec/models/spree/customer_return_spec.rb +0 -240
  74. data/spec/models/spree/exchange_spec.rb +0 -75
  75. data/spec/models/spree/gateway/bogus_simple.rb +0 -20
  76. data/spec/models/spree/gateway/bogus_spec.rb +0 -13
  77. data/spec/models/spree/gateway_spec.rb +0 -61
  78. data/spec/models/spree/image_spec.rb +0 -8
  79. data/spec/models/spree/inventory_unit_spec.rb +0 -225
  80. data/spec/models/spree/line_item_spec.rb +0 -327
  81. data/spec/models/spree/option_type_spec.rb +0 -14
  82. data/spec/models/spree/option_value_spec.rb +0 -18
  83. data/spec/models/spree/order/address_spec.rb +0 -50
  84. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  85. data/spec/models/spree/order/callbacks_spec.rb +0 -42
  86. data/spec/models/spree/order/checkout_spec.rb +0 -782
  87. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
  88. data/spec/models/spree/order/finalizing_spec.rb +0 -114
  89. data/spec/models/spree/order/helpers_spec.rb +0 -5
  90. data/spec/models/spree/order/payment_spec.rb +0 -214
  91. data/spec/models/spree/order/risk_assessment_spec.rb +0 -84
  92. data/spec/models/spree/order/shipments_spec.rb +0 -43
  93. data/spec/models/spree/order/state_machine_spec.rb +0 -211
  94. data/spec/models/spree/order/store_credit_spec.rb +0 -426
  95. data/spec/models/spree/order/tax_spec.rb +0 -84
  96. data/spec/models/spree/order/totals_spec.rb +0 -24
  97. data/spec/models/spree/order/updating_spec.rb +0 -18
  98. data/spec/models/spree/order/validations_spec.rb +0 -15
  99. data/spec/models/spree/order_contents_spec.rb +0 -297
  100. data/spec/models/spree/order_inventory_spec.rb +0 -238
  101. data/spec/models/spree/order_merger_spec.rb +0 -135
  102. data/spec/models/spree/order_spec.rb +0 -967
  103. data/spec/models/spree/order_updater_spec.rb +0 -305
  104. data/spec/models/spree/payment/gateway_options_spec.rb +0 -127
  105. data/spec/models/spree/payment/store_credit_spec.rb +0 -60
  106. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -291
  107. data/spec/models/spree/payment_method_spec.rb +0 -103
  108. data/spec/models/spree/payment_spec.rb +0 -919
  109. data/spec/models/spree/preference_spec.rb +0 -80
  110. data/spec/models/spree/preferences/configuration_spec.rb +0 -30
  111. data/spec/models/spree/preferences/preferable_spec.rb +0 -348
  112. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -58
  113. data/spec/models/spree/preferences/store_spec.rb +0 -46
  114. data/spec/models/spree/price_spec.rb +0 -128
  115. data/spec/models/spree/product/scopes_spec.rb +0 -183
  116. data/spec/models/spree/product_duplicator_spec.rb +0 -103
  117. data/spec/models/spree/product_filter_spec.rb +0 -26
  118. data/spec/models/spree/product_option_type_spec.rb +0 -9
  119. data/spec/models/spree/product_promotion_rule_spec.rb +0 -9
  120. data/spec/models/spree/product_property_spec.rb +0 -22
  121. data/spec/models/spree/product_spec.rb +0 -540
  122. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -50
  123. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -148
  124. data/spec/models/spree/promotion/actions/create_line_items_spec.rb +0 -86
  125. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -36
  126. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -75
  127. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -282
  128. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -42
  129. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -90
  130. data/spec/models/spree/promotion/rules/product_spec.rb +0 -143
  131. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -102
  132. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -27
  133. data/spec/models/spree/promotion/rules/user_spec.rb +0 -45
  134. data/spec/models/spree/promotion_action_spec.rb +0 -10
  135. data/spec/models/spree/promotion_category_spec.rb +0 -17
  136. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -102
  137. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -323
  138. data/spec/models/spree/promotion_handler/free_shipping_spec.rb +0 -48
  139. data/spec/models/spree/promotion_handler/page_spec.rb +0 -44
  140. data/spec/models/spree/promotion_rule_spec.rb +0 -29
  141. data/spec/models/spree/promotion_rule_taxon_spec.rb +0 -9
  142. data/spec/models/spree/promotion_rule_user_spec.rb +0 -9
  143. data/spec/models/spree/promotion_spec.rb +0 -644
  144. data/spec/models/spree/property_prototype_spec.rb +0 -9
  145. data/spec/models/spree/property_spec.rb +0 -5
  146. data/spec/models/spree/prototype_spec.rb +0 -5
  147. data/spec/models/spree/prototype_taxon_spec.rb +0 -9
  148. data/spec/models/spree/refund_reason_spec.rb +0 -7
  149. data/spec/models/spree/refund_spec.rb +0 -195
  150. data/spec/models/spree/reimbursement/credit_spec.rb +0 -36
  151. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -140
  152. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -83
  153. data/spec/models/spree/reimbursement_performer_spec.rb +0 -30
  154. data/spec/models/spree/reimbursement_spec.rb +0 -188
  155. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -63
  156. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -53
  157. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -46
  158. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -55
  159. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -101
  160. data/spec/models/spree/return_authorization_reason_spec.rb +0 -7
  161. data/spec/models/spree/return_authorization_spec.rb +0 -230
  162. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -77
  163. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -58
  164. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -61
  165. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -32
  166. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -29
  167. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -35
  168. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -65
  169. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  170. data/spec/models/spree/return_item_spec.rb +0 -731
  171. data/spec/models/spree/returns_calculator_spec.rb +0 -14
  172. data/spec/models/spree/role_spec.rb +0 -7
  173. data/spec/models/spree/shipment_spec.rb +0 -740
  174. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  175. data/spec/models/spree/shipping_category_spec.rb +0 -19
  176. data/spec/models/spree/shipping_method_spec.rb +0 -95
  177. data/spec/models/spree/shipping_rate_spec.rb +0 -140
  178. data/spec/models/spree/state_spec.rb +0 -29
  179. data/spec/models/spree/stock/availability_validator_spec.rb +0 -36
  180. data/spec/models/spree/stock/content_item_spec.rb +0 -31
  181. data/spec/models/spree/stock/coordinator_spec.rb +0 -51
  182. data/spec/models/spree/stock/differentiator_spec.rb +0 -39
  183. data/spec/models/spree/stock/estimator_spec.rb +0 -202
  184. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -38
  185. data/spec/models/spree/stock/package_spec.rb +0 -194
  186. data/spec/models/spree/stock/packer_spec.rb +0 -70
  187. data/spec/models/spree/stock/prioritizer_spec.rb +0 -125
  188. data/spec/models/spree/stock/quantifier_spec.rb +0 -126
  189. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -29
  190. data/spec/models/spree/stock/splitter/base_spec.rb +0 -21
  191. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -47
  192. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -32
  193. data/spec/models/spree/stock_item_spec.rb +0 -428
  194. data/spec/models/spree/stock_location_spec.rb +0 -243
  195. data/spec/models/spree/stock_movement_spec.rb +0 -56
  196. data/spec/models/spree/stock_transfer_spec.rb +0 -50
  197. data/spec/models/spree/store_credit_event_spec.rb +0 -101
  198. data/spec/models/spree/store_credit_spec.rb +0 -786
  199. data/spec/models/spree/store_spec.rb +0 -78
  200. data/spec/models/spree/tax_category_spec.rb +0 -32
  201. data/spec/models/spree/tax_rate_spec.rb +0 -542
  202. data/spec/models/spree/taxon_spec.rb +0 -74
  203. data/spec/models/spree/taxonomy_spec.rb +0 -18
  204. data/spec/models/spree/tracker_spec.rb +0 -21
  205. data/spec/models/spree/user_spec.rb +0 -203
  206. data/spec/models/spree/variant_spec.rb +0 -795
  207. data/spec/models/spree/zone_member_spec.rb +0 -38
  208. data/spec/models/spree/zone_spec.rb +0 -470
  209. data/spec/spec_helper.rb +0 -77
  210. data/spec/support/big_decimal.rb +0 -5
  211. data/spec/support/concerns/adjustment_source.rb +0 -23
  212. data/spec/support/concerns/default_price.rb +0 -37
  213. data/spec/support/rake.rb +0 -13
  214. data/spec/support/test_gateway.rb +0 -2
  215. data/spec/validators/db_maximum_length_validator_spec.rb +0 -22
@@ -1,175 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::Core::NumberGenerator do
4
- let(:number_generator) { described_class.new(options) }
5
- let(:random) { instance_double(Random) }
6
-
7
- let(:model) do
8
- mod = number_generator
9
-
10
- Class.new(ActiveRecord::Base) do
11
- self.table_name = 'spree_orders'
12
- include mod
13
- end
14
- end
15
-
16
- before do
17
- expect(Random).to receive(:new).and_return(random)
18
- end
19
-
20
- let(:options) { { prefix: 'R' } }
21
-
22
- %i[prefix length].each do |name|
23
- describe "##{name}" do
24
- let(:value) { double('Generic Value') }
25
-
26
- it 'returns attribute value from options' do
27
- expect(described_class.new(options.merge(name => value)).public_send(name)).to be(value)
28
- end
29
- end
30
-
31
- describe "##{name}=" do
32
- let(:value_a) { double('Generic Value A') }
33
- let(:value_b) { double('Generic Value B') }
34
-
35
- it 'writes attribute value' do
36
- object = described_class.new(options.merge(name => value_a))
37
- expect { object.public_send(:"#{name}=", value_b) }
38
- .to change { object.public_send(name) }
39
- .from(value_a)
40
- .to(value_b)
41
- end
42
- end
43
- end
44
-
45
- shared_examples_for 'duplicate without length increment' do
46
- before do
47
- expect(random).to receive(:rand).
48
- with(expected_rand_limit).
49
- and_return(next_candidate_index).
50
- exactly(expected_length).times
51
- end
52
-
53
- it 'sets permalink field' do
54
- expect { subject }.to change(resource, :number).from(nil).to(next_candidate)
55
- end
56
- end
57
-
58
- shared_examples_for 'generating permalink'do
59
- let(:resource) { model.new }
60
-
61
- before do
62
- expect(random).to receive(:rand).
63
- with(expected_rand_limit).
64
- and_return(first_candidate_index).
65
- exactly(expected_length).times
66
- end
67
-
68
- context 'and generated candidate is unique' do
69
- before do
70
- expect(model).to receive(:exists?).with(number: first_candidate).and_return(false)
71
- end
72
-
73
- it 'sets permalink field' do
74
- expect { subject }.to change(resource, :number).from(nil).to(first_candidate)
75
- end
76
- end
77
-
78
- context 'and generated candidate is NOT unique' do
79
- before do
80
- expect(model).to receive(:exists?).with(number: first_candidate).and_return(true).ordered
81
- expect(model).to receive(:count).and_return(record_count).ordered
82
- expect(model).to receive(:exists?).with(number: next_candidate).and_return(false)
83
- end
84
-
85
- context 'and less than half of the value space taken' do
86
- let(:next_candidate) { next_candidate_low }
87
- let(:record_count) { 10 ** expected_length / 2 - 1 }
88
-
89
- include_examples 'duplicate without length increment'
90
- end
91
-
92
- context 'and exactly half of the value space taken' do
93
- let(:next_candidate) { next_candidate_low }
94
- let(:record_count) { 10 ** expected_length / 2 }
95
-
96
- include_examples 'duplicate without length increment'
97
- end
98
-
99
- context 'and more than half of the value space is taken' do
100
- let(:record_count) { 10 ** expected_length / 2 + 1 }
101
- let(:next_candidate) { next_candidate_high }
102
-
103
- before do
104
- expect(random).to receive(:rand).
105
- with(expected_rand_limit).
106
- and_return(next_candidate_index).
107
- exactly(expected_length.succ).times
108
- end
109
-
110
- it 'sets permalink field' do
111
- expect { subject }.to change(resource, :number).from(nil).to(next_candidate)
112
- end
113
- end
114
- end
115
- end
116
-
117
- describe '#included' do
118
- context 'generates .number_generator on host' do
119
- it 'returns number generator' do
120
- expect(model.number_generator).to be(number_generator)
121
- end
122
- end
123
-
124
- context 'generates validation hooks on host' do
125
- subject { resource.valid? }
126
-
127
- let(:first_candidate_index) { 0 }
128
- let(:next_candidate_index) { 1 }
129
- let(:expected_rand_limit) { 10 }
130
- let(:expected_length) { 9 }
131
-
132
- context 'when permalink field value is nil' do
133
- context 'on defaults' do
134
- let(:first_candidate) { 'R000000000' }
135
- let(:next_candidate_low) { 'R111111111' }
136
- let(:next_candidate_high) { 'R1111111111' }
137
-
138
- include_examples 'generating permalink'
139
- end
140
-
141
- context 'with length: option' do
142
- let(:options) { super().merge(length: 10) }
143
- let(:expected_length) { 10 }
144
-
145
- let(:first_candidate) { 'R0000000000' }
146
- let(:next_candidate_low) { 'R1111111111' }
147
- let(:next_candidate_high) { 'R11111111111' }
148
-
149
- include_examples 'generating permalink'
150
- end
151
-
152
- context 'with letters option' do
153
- let(:options) { super().merge(letters: true) }
154
- let(:expected_rand_limit) { 36 }
155
-
156
- let(:first_candidate) { 'RAAAAAAAAA' }
157
- let(:first_candidate_index) { 10 }
158
- let(:next_candidate_index) { 11 }
159
- let(:next_candidate_low) { 'RBBBBBBBBB' }
160
- let(:next_candidate_high) { 'RBBBBBBBBBB' }
161
-
162
- include_examples 'generating permalink'
163
- end
164
- end
165
-
166
- context 'when permalink field value is present' do
167
- let(:resource) { model.new(number: 'Test') }
168
-
169
- it 'does not touch field' do
170
- expect { subject }.not_to change(resource, :number)
171
- end
172
- end
173
- end
174
- end
175
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::Core::TokenGenerator do
4
- class DummyClass
5
- include Spree::Core::TokenGenerator
6
-
7
- attr_reader :created_at
8
-
9
- def initialize
10
- @created_at = Time.now.to_i
11
- end
12
- end
13
-
14
- let(:dummy_class_instance) { DummyClass.new }
15
-
16
- describe 'generate_guest_token' do
17
- let(:generated_token) { dummy_class_instance.generate_guest_token }
18
-
19
- it 'generates random token with timestamp' do
20
- expect(generated_token.size).to eq 35
21
- expect(generated_token).to include dummy_class_instance.created_at.to_s
22
- end
23
- end
24
- end
@@ -1,53 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe EmailValidator do
4
-
5
- class Tester
6
- include ActiveModel::Validations
7
- attr_accessor :email_address
8
- validates :email_address, email: true
9
- end
10
-
11
- let(:valid_emails) {[
12
- 'valid@email.com',
13
- 'valid@email.com.uk',
14
- 'e@email.com',
15
- 'valid+email@email.com',
16
- 'valid-email@email.com',
17
- 'valid_email@email.com',
18
- 'validemail_@email.com',
19
- 'valid.email@email.com'
20
- ]}
21
- let(:invalid_emails) {[
22
- '',
23
- ' ',
24
- 'invalid email@email.com',
25
- 'invalidemail @email.com',
26
- 'invalidemail@email..com',
27
- '.invalid.email@email.com',
28
- 'invalid.email.@email.com',
29
- '@email.com',
30
- '.@email.com',
31
- 'invalidemailemail.com',
32
- '@invalid.email@email.com',
33
- 'invalid@email@email.com',
34
- 'invalid.email@@email.com'
35
- ]}
36
-
37
- it 'validates valid email addresses' do
38
- tester = Tester.new
39
- valid_emails.each do |email|
40
- tester.email_address = email
41
- expect(tester.valid?).to be true
42
- end
43
- end
44
-
45
- it 'validates invalid email addresses' do
46
- tester = Tester.new
47
- invalid_emails.each do |email|
48
- tester.email_address = email
49
- expect(tester.valid?).to be false
50
- end
51
- end
52
-
53
- end
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree do
4
- describe '.admin_path' do
5
- it { expect(Spree.admin_path).to eq(Spree::Config[:admin_path]) }
6
- end
7
-
8
- describe '.admin_path=' do
9
- let!(:original_admin_path) { Spree.admin_path }
10
- let(:new_admin_path) { '/admin-secret-path' }
11
-
12
- before do
13
- Spree.admin_path = new_admin_path
14
- end
15
-
16
- it { expect(Spree.admin_path).to eq(new_admin_path) }
17
- it { expect(Spree::Config[:admin_path]).to eq(new_admin_path) }
18
-
19
- after do
20
- Spree.admin_path = original_admin_path
21
- end
22
- end
23
- end
@@ -1,48 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::LocalizedNumber do
4
-
5
- context ".parse" do
6
- before do
7
- I18n.enforce_available_locales = false
8
- I18n.locale = I18n.default_locale
9
- I18n.backend.store_translations(:de, { :number => { :currency => { :format => { :delimiter => '.', :separator => ',' } } } })
10
- end
11
-
12
- after do
13
- I18n.locale = I18n.default_locale
14
- I18n.enforce_available_locales = true
15
- end
16
-
17
- context "with decimal point" do
18
- it "captures the proper amount for a formatted price" do
19
- expect(subject.class.parse('1,599.99')).to eql 1599.99
20
- end
21
- end
22
-
23
- context "with decimal comma" do
24
- it "captures the proper amount for a formatted price" do
25
- I18n.locale = :de
26
- expect(subject.class.parse('1.599,99')).to eql 1599.99
27
- end
28
- end
29
-
30
- context "with a numeric price" do
31
- it "uses the price as is" do
32
- I18n.locale = :de
33
- expect(subject.class.parse(1599.99)).to eql 1599.99
34
- end
35
- end
36
-
37
- context "string argument" do
38
- it "should not be modified" do
39
- I18n.locale = :de
40
- number = '1.599,99'
41
- number_bak = number.dup
42
- subject.class.parse(number)
43
- expect(number).to eql(number_bak)
44
- end
45
- end
46
- end
47
-
48
- end
@@ -1,36 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe Migrations do
5
- let(:app_migrations) { [".", "34_add_title.rb", "52_add_text.rb"] }
6
- let(:engine_migrations) { [".", "334_create_orders.spree.rb", "777_create_products.spree.rb"] }
7
-
8
- let(:config) { double("Config", root: "dir") }
9
-
10
- let(:engine_dir) { "dir/db/migrate" }
11
- let(:app_dir) { "#{Rails.root}/db/migrate" }
12
-
13
- subject { described_class.new(config, "spree") }
14
-
15
- before do
16
- expect(File).to receive(:directory?).with(app_dir).and_return true
17
- end
18
-
19
- it "warns about missing migrations" do
20
- expect(Dir).to receive(:entries).with(app_dir).and_return app_migrations
21
- expect(Dir).to receive(:entries).with(engine_dir).and_return engine_migrations
22
-
23
- silence_stream(STDOUT) {
24
- expect(subject.check).to eq true
25
- }
26
- end
27
-
28
- context "no missing migrations" do
29
- it "says nothing" do
30
- expect(Dir).to receive(:entries).with(engine_dir).and_return engine_migrations
31
- expect(Dir).to receive(:entries).with(app_dir).and_return(app_migrations + engine_migrations)
32
- expect(subject.check).to eq nil
33
- end
34
- end
35
- end
36
- end
@@ -1,122 +0,0 @@
1
- # coding: utf-8
2
- require 'spec_helper'
3
-
4
- describe Spree::Money do
5
- before do
6
- configure_spree_preferences do |config|
7
- config.currency = "USD"
8
- end
9
- end
10
-
11
- it "formats correctly" do
12
- money = Spree::Money.new(10)
13
- expect(money.to_s).to eq("$10.00")
14
- end
15
-
16
- it "can get cents" do
17
- money = Spree::Money.new(10)
18
- expect(money.cents).to eq(1000)
19
- end
20
-
21
- context "with currency" do
22
- it "passed in option" do
23
- money = Spree::Money.new(10, :with_currency => true, :html => false)
24
- expect(money.to_s).to eq("$10.00 USD")
25
- end
26
- end
27
-
28
- context "hide cents" do
29
- it "hides cents suffix" do
30
- money = Spree::Money.new(10, no_cents: true)
31
- expect(money.to_s).to eq("$10")
32
- end
33
-
34
- it "shows cents suffix" do
35
- money = Spree::Money.new(10)
36
- expect(money.to_s).to eq("$10.00")
37
- end
38
- end
39
-
40
- context "currency parameter" do
41
- context "when currency is specified in Canadian Dollars" do
42
- it "uses the currency param over the global configuration" do
43
- money = Spree::Money.new(10, :currency => 'CAD', :with_currency => true, :html => false)
44
- expect(money.to_s).to eq("$10.00 CAD")
45
- end
46
- end
47
-
48
- context "when currency is specified in Japanese Yen" do
49
- it "uses the currency param over the global configuration" do
50
- money = Spree::Money.new(100, :currency => 'JPY', :html => false)
51
- expect(money.to_s).to eq("¥100")
52
- end
53
- end
54
- end
55
-
56
- context "symbol positioning" do
57
- it "passed in option" do
58
- money = Spree::Money.new(10, :symbol_position => :after, :html => false)
59
- expect(money.to_s).to eq("10.00 $")
60
- end
61
- end
62
-
63
- context "sign before symbol" do
64
- it "defaults to -$10.00" do
65
- money = Spree::Money.new(-10)
66
- expect(money.to_s).to eq("-$10.00")
67
- end
68
-
69
- it "passed in option" do
70
- money = Spree::Money.new(-10, :sign_before_symbol => false)
71
- expect(money.to_s).to eq("$-10.00")
72
- end
73
- end
74
-
75
- context "JPY" do
76
- before do
77
- configure_spree_preferences do |config|
78
- config.currency = "JPY"
79
- end
80
- end
81
-
82
- it "formats correctly" do
83
- money = Spree::Money.new(1000, :html => false)
84
- expect(money.to_s).to eq("¥1,000")
85
- end
86
- end
87
-
88
- context "EUR" do
89
- before do
90
- configure_spree_preferences do |config|
91
- config.currency = "EUR"
92
- end
93
- end
94
-
95
- # Regression test for #2634
96
- it "formats as plain by default" do
97
- money = Spree::Money.new(10, symbol_position: :after)
98
- expect(money.to_s).to eq("10.00 €")
99
- end
100
-
101
- it "formats as HTML if asked (nicely) to" do
102
- money = Spree::Money.new(10, symbol_position: :after)
103
- # The HTML'ified version of "10.00 €"
104
- expect(money.to_html).to eq("10.00 €")
105
- end
106
-
107
- it "formats as HTML with currency" do
108
- money = Spree::Money.new(10, symbol_position: :after, with_currency: true)
109
- # The HTML'ified version of "10.00 €"
110
- expect(money.to_html).to eq("10.00&nbsp;&#x20AC; <span class=\"currency\">EUR</span>")
111
- end
112
- end
113
-
114
- describe "#as_json" do
115
- let(:options) { double('options') }
116
-
117
- it "returns the expected string" do
118
- money = Spree::Money.new(10)
119
- expect(money.as_json(options)).to eq("$10.00")
120
- end
121
- end
122
- end