workarea-storefront 3.5.9 → 3.5.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65fb50b29bbd87bd91ecf4a2abc692b17b8b767664e9afaddcb13b3e1b4b31e6
4
- data.tar.gz: e9960fb2e4b27272fdc8966cb0b8bd3bfe3c1249f10030fba994f9dbbcaa7391
3
+ metadata.gz: 8c13d37967ef60ab6477c1bcfe8caba5047140df04ec336837dc9f7beb8c5cec
4
+ data.tar.gz: 8cb069a9ef9bee78124a82e392a57194c572f74a1e0f49bb81166b2d3dc726c8
5
5
  SHA512:
6
- metadata.gz: 417940f49bf5f39cf909f945a9fd4a4dcedadf3080d409514ae2b0c1c12602f18cec1fc61e655cad8a38069d8017c427cc00c05f8f46403815c66d39f75e3156
7
- data.tar.gz: 28eb9182e7b1d3a24f5cc2bac7576976e0340318e4588de57548d3cd096669e9b167028f2576a77a36e2e10974b722a5c4d8225e182b657e490678f4e091257f
6
+ metadata.gz: df8cee341873edf5161464a25cb2b8800435ee68822462670b54889f43b8514ce7ca3bb8380443a5f6eaffed842ea97194f2a8b4cc41f3f8e8086151e23e130a
7
+ data.tar.gz: 97ae96ddefbc49581c0cccf69e0029502a00325948b45af932dd5dcf8cd5adf3585344b7931dcac547f68ac6c368c85bc52a70b675d5f8178faf22b35a9723a2
@@ -46,6 +46,8 @@ module Workarea
46
46
  end
47
47
 
48
48
  def validate_shipping_options
49
+ return unless current_order.requires_shipping?
50
+
49
51
  available_options = Workarea::Storefront::CartViewModel.new(current_order).shipping_options
50
52
 
51
53
  if available_options.empty?
@@ -44,7 +44,7 @@ module Workarea
44
44
  segment_ids: current_segments.map(&:id)
45
45
  )
46
46
 
47
- update_tracking!(email: current_order.email)
47
+ update_tracking!(email: current_order.email) unless current_order.email.blank?
48
48
  end
49
49
 
50
50
  def with_order_lock
@@ -26,7 +26,10 @@ module Workarea
26
26
  #
27
27
  def current_order=(order)
28
28
  @current_order = order
29
- cookies.permanent.signed[:order_id] = order&.id
29
+
30
+ if order.blank? || order.persisted?
31
+ cookies.permanent.signed[:order_id] = order&.id
32
+ end
30
33
  end
31
34
 
32
35
  # Removes the current order from the session.
@@ -27,7 +27,7 @@ module Workarea
27
27
 
28
28
  def search_query
29
29
  @search_query ||= Search::CategoryBrowse.new(
30
- options.merge(
30
+ options.except(:per_page).merge(
31
31
  category_ids: [model.id],
32
32
  rules: model.product_rules.usable,
33
33
  terms_facets: terms_facets - %w(category),
@@ -3,7 +3,7 @@
3
3
  = render_schema_org(fulfillment_email_schema(@order, @package))
4
4
 
5
5
  - content_for :preheader_text do
6
- = t('workarea.storefront.email.order_cancellation.heading', order_id: @order.id)
6
+ = t('workarea.storefront.email.order_shipped.heading', order_id: @order.id)
7
7
 
8
8
  %tr
9
9
  %td
@@ -210,14 +210,14 @@ en:
210
210
  credit_card_update_error: There were errors updating your credit card.
211
211
  credit_card_removed: Your credit card has been removed.
212
212
  password_reset_expired: This password reset is expired.
213
- password_reset_email_sent: If a valid e-mail address was entered, instructions to reset your password have been sent to "%{email}"
213
+ password_reset_email_sent: If a valid email address was entered, instructions to reset your password have been sent to "%{email}"
214
214
  password_reset: Your password has been reset.
215
215
  old_password_invalid: Your old password is not valid.
216
216
  password_required: Password is required.
217
217
  items_required: You must add an item to your cart to checkout
218
218
  order_custom_pricing: Your cart has custom pricing, you cannot edit the contents of your cart.
219
219
  download_unavailable: This download is no longer available. Contact customer support for more information.
220
- no_available_shipping_options: There are no available shipping options for your shipping adddress.
220
+ no_available_shipping_options: There are no available shipping options for your shipping address.
221
221
 
222
222
  forms:
223
223
  required: '*'
@@ -123,6 +123,26 @@ module Workarea
123
123
 
124
124
  assert_redirected_to(storefront.login_path)
125
125
  end
126
+
127
+ def test_no_extra_order_id_cookies
128
+ user = create_user(password: 'Passw0rd!')
129
+ post storefront.login_path,
130
+ params: { email: user.email, password: 'Passw0rd!' }
131
+
132
+ follow_redirect!
133
+ assert(cookies[:order_id].blank?)
134
+
135
+ delete storefront.logout_path
136
+
137
+ follow_redirect!
138
+ assert(cookies[:order_id].blank?)
139
+
140
+ post storefront.login_path,
141
+ params: { email: user.email, password: 'Passw0rd!' }
142
+
143
+ follow_redirect!
144
+ assert(cookies[:order_id].blank?)
145
+ end
126
146
  end
127
147
  end
128
148
  end
@@ -16,6 +16,16 @@ module Workarea
16
16
  get storefront.category_path(create_category(active: false))
17
17
  assert(response.ok?)
18
18
  end
19
+
20
+ def test_not_accepting_per_page_param
21
+ products = [create_product, create_product]
22
+ category = create_category(product_ids: products.map(&:id))
23
+
24
+ get storefront.category_path(category, page: 1, per_page: 1)
25
+ assert(response.ok?)
26
+ assert_includes(response.body, storefront.product_path(products.first))
27
+ assert_includes(response.body, storefront.product_path(products.second))
28
+ end
19
29
  end
20
30
  end
21
31
  end
@@ -345,6 +345,39 @@ module Workarea
345
345
 
346
346
  assert(flash[:error].present?)
347
347
  end
348
+
349
+ def test_not_setting_a_blank_tracking_email
350
+ cookies[:email] = 'foo@bar.com'
351
+ get storefront.checkout_shipping_path
352
+ assert_equal('foo@bar.com', cookies[:email])
353
+ end
354
+
355
+ def test_no_required_shipping_address_options_flash_message
356
+ product = create_product(name: 'Digital Product', variants: [{ sku: 'SKU' }])
357
+ create_fulfillment_sku(id: 'SKU', policy: :download, file: product_image_file)
358
+
359
+ post storefront.cart_items_path,
360
+ params: { product_id: product.id, sku: product.skus.first, quantity: 1 }
361
+
362
+ get storefront.checkout_addresses_path
363
+
364
+ patch storefront.checkout_addresses_path,
365
+ params: {
366
+ email: 'bcrouse@weblinc.com',
367
+ billing_address: {
368
+ first_name: 'Ben',
369
+ last_name: 'Crouse',
370
+ street: '12 N. 3rd St.',
371
+ city: 'Philadelphia',
372
+ region: 'PA',
373
+ postal_code: '19106',
374
+ country: 'US',
375
+ phone_number: '2159251800'
376
+ }
377
+ }
378
+
379
+ refute(flash[:error].present?)
380
+ end
348
381
  end
349
382
  end
350
383
  end
@@ -13,7 +13,7 @@ module Workarea
13
13
 
14
14
  def test_login
15
15
  login(User.find(params[:user_id]))
16
- self.current_order = Order.new(id: params[:order_id]) if params[:order_id].present?
16
+ self.current_order = Order.create!(id: params[:order_id]) if params[:order_id].present?
17
17
  head :ok
18
18
  end
19
19
 
@@ -87,6 +87,16 @@ module Workarea
87
87
  assert_includes(response.body, 'Foo A')
88
88
  assert_includes(response.body, 'Foo B')
89
89
  end
90
+
91
+ def test_not_accepting_per_page_param
92
+ one = create_product(name: 'Foo A')
93
+ two = create_product(name: 'Foo B')
94
+
95
+ get storefront.search_path(q: 'foo', page: 1, per_page: 1)
96
+ assert(response.ok?)
97
+ assert_includes(response.body, storefront.product_path(one))
98
+ assert_includes(response.body, storefront.product_path(two))
99
+ end
90
100
  end
91
101
  end
92
102
  end
@@ -271,6 +271,19 @@ module Workarea
271
271
  headers: { 'HTTP_REFERER' => 'https://www.facebook.com/' }
272
272
  assert_equal(google.id.to_s, response.headers['X-Workarea-Segments'])
273
273
  end
274
+
275
+ def test_missing_email_cookies
276
+ user = create_user(password: 'w0rkArea!', tags: %w(foo))
277
+ segment = create_segment(rules: [Segment::Rules::Tags.new(tags: %w(foo))])
278
+
279
+ post storefront.login_path,
280
+ params: { email: user.email, password: 'w0rkArea!' }
281
+
282
+ cookies[:email] = nil
283
+
284
+ get storefront.current_user_path(format: 'json')
285
+ assert_equal(segment.id.to_s, response.headers['X-Workarea-Segments'])
286
+ end
274
287
  end
275
288
  end
276
289
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workarea-storefront
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.9
4
+ version: 3.5.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Crouse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-15 00:00:00.000000000 Z
11
+ date: 2020-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: workarea-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.5.9
19
+ version: 3.5.14
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.5.9
26
+ version: 3.5.14
27
27
  description: Provides user-facing ecommerce storefront functionality for the Workarea
28
28
  Commerce Platform.
29
29
  email: