workarea-storefront 3.5.7 → 3.5.12

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: 5233fecc9c68b244d4518511eac8ff35e0d1f75512ec960837b33acd3eb15eda
4
- data.tar.gz: 4f35b7f3c705c604918b1aff633d7e23ae1a3d484e9ef8c7214f9f4a9380e5de
3
+ metadata.gz: 5927c378602c40ee9b4597baf1afa11d4bc0af1168eceac4ae32135864c09e1c
4
+ data.tar.gz: aad145d930b02c1b4ac12d1032d58591327f236f37c9ac0cf3a5a9dd825cc08c
5
5
  SHA512:
6
- metadata.gz: ceb45daa9e304cccd5c576692d67a8895a4c29e4b0cfe80a418a0ad01d25ec5437bb0693bb069642e402f864b29b8f53c9106d5698a9d4265208800047be0b03
7
- data.tar.gz: 3f87b6707871d4654c9bc5cfd82858ea2d75e60d2f9a607242ef8084dfeca87231a29f97fc3abbc7d43cf393460324022a736085c5d057467bedb9b934f9917c
6
+ metadata.gz: 70ad91e1b06aceb9dba188fd711068a6cba35f9709c162e08b0fba876c953bfe8550441ada2f8753282536744918af55d0c8a09ecc0c31800cdff3e9793f3444
7
+ data.tar.gz: 3b4d4ccb95b1f7898b4f07873c5c54b191a6903cbe1459a898d134c02646b345c93993f6bcdb69aab99f0a60faa452fce363eb5cb2e3cf073e81db8ab4a790fb
@@ -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.
@@ -8,7 +8,11 @@ module Workarea
8
8
 
9
9
  def edit
10
10
  reset = User::PasswordReset.find_by(token: params[:token]) rescue nil
11
- redirect_to forgot_password_path unless reset
11
+
12
+ unless reset
13
+ flash[:error] = t('workarea.storefront.flash_messages.password_reset_expired')
14
+ redirect_to forgot_password_path
15
+ end
12
16
  end
13
17
 
14
18
  def create
@@ -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
@@ -10,6 +10,8 @@
10
10
  .product-prices.product-prices--details
11
11
  = render 'workarea/storefront/products/pricing', product: product
12
12
 
13
+ = append_partials('storefront.product_pricing_details', product: product)
14
+
13
15
  - if product.description.present?
14
16
  .product-details__description
15
17
  %p= truncated_product_description(product, t('workarea.storefront.products.read_more'))
@@ -10,6 +10,8 @@
10
10
  .product-prices.product-prices--details
11
11
  = render 'workarea/storefront/products/pricing', product: product
12
12
 
13
+ = append_partials('storefront.product_pricing_details', product: product)
14
+
13
15
  - if product.description.present?
14
16
  .product-details__description
15
17
  %p= truncated_product_description(product, t('workarea.storefront.products.read_more'))
@@ -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,12 @@ 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
348
354
  end
349
355
  end
350
356
  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
@@ -31,6 +31,7 @@ module Workarea
31
31
 
32
32
  def test_handles_a_missing_password_reset
33
33
  get storefront.reset_password_path(token: 'foo')
34
+ assert(flash[:error].present?)
34
35
  assert_redirected_to(storefront.forgot_password_path)
35
36
  end
36
37
 
@@ -42,6 +43,24 @@ module Workarea
42
43
  assert(flash[:error].present?)
43
44
  assert(response.redirect?)
44
45
  end
46
+
47
+ def test_expired_resets
48
+ post storefront.forgot_password_path, params: { email: 'passwords@workarea.com' }
49
+ first = User::PasswordReset.desc(:created_at).first
50
+
51
+ get storefront.reset_password_path(token: first.token)
52
+ assert(response.ok?)
53
+
54
+ post storefront.forgot_password_path, params: { email: 'passwords@workarea.com' }
55
+ second = User::PasswordReset.desc(:created_at).first
56
+
57
+ get storefront.reset_password_path(token: second.token)
58
+ assert(response.ok?)
59
+
60
+ get storefront.reset_password_path(token: first.token)
61
+ assert(flash[:error].present?)
62
+ assert_redirected_to(storefront.forgot_password_path)
63
+ end
45
64
  end
46
65
  end
47
66
  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.7
4
+ version: 3.5.12
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-03-17 00:00:00.000000000 Z
11
+ date: 2020-05-26 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.7
19
+ version: 3.5.12
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.7
26
+ version: 3.5.12
27
27
  description: Provides user-facing ecommerce storefront functionality for the Workarea
28
28
  Commerce Platform.
29
29
  email:
@@ -734,7 +734,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
734
734
  - !ruby/object:Gem::Version
735
735
  version: '0'
736
736
  requirements: []
737
- rubygems_version: 3.0.6
737
+ rubygems_version: 3.0.3
738
738
  signing_key:
739
739
  specification_version: 4
740
740
  summary: Storefront for the Workarea Commerce Platform