workarea-storefront 3.4.29 → 3.4.34

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: 8019405f150f4fd0f91d015a2c0fd1279f9fa220b7c10a01447e2708a2cfb92f
4
- data.tar.gz: fdbbb0a9ec6fbcfe18e63030582b46f0859d7252747b883ad7cee8f67fbdc192
3
+ metadata.gz: 4bbdb37ed168c54fc07a70fabbb88326c0701c557d22dd037bd806620875ff26
4
+ data.tar.gz: ced79547f1104eea3896235cdb26055385ef360ce9207d49370547ce34672891
5
5
  SHA512:
6
- metadata.gz: a8a1977dd70f6768ae7c344da5a061b18817f58767578fb6bbe2769475ea45b25390ece57fa4749d5001e4b7c8126c2f14faa0eb231e13f6d6e0bfd2f31a10c2
7
- data.tar.gz: 543c7d062767d717fcc3400d2b281d5ced0a6671bd5eeb53629886e734a18705730befde3113e7481f3daca8326d8e7dcc2d4bee0749859cb7db07674565ab06
6
+ metadata.gz: e2d82fd8aaee4f4192cffe3ed8d238f4e442558d913f5e6752286088d0d9a4263be0d6fa5d08ac92732ad44c4ec7243f7485c6fba4569f5784550c1f479025ec
7
+ data.tar.gz: 87e9d758015728e89cfe83a016fcba1ec426ca49e8455211a9c8badcc0d8d49e453b526fff0cab0ccd8530018291427193a8b44cd0a002b0db802bbe4818a842
@@ -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?
@@ -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,
33
33
  terms_facets: terms_facets - %w(category),
@@ -1,7 +1,7 @@
1
1
  = append_partials('storefront.fulfillment_shipped_mailer.top')
2
2
 
3
3
  - content_for :preheader_text do
4
- = t('workarea.storefront.email.order_cancellation.heading', order_id: @order.id)
4
+ = t('workarea.storefront.email.order_shipped.heading', order_id: @order.id)
5
5
 
6
6
  %tr
7
7
  %td
@@ -10,6 +10,8 @@
10
10
  .product-prices.product-prices--details{ itemprop: 'offers', itemscope: true, itemtype: 'http://schema.org/Offer' }
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{ itemprop: 'offers', itemscope: true, itemtype: 'http://schema.org/Offer' }
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'))
@@ -201,13 +201,14 @@ en:
201
201
  credit_card_update_error: There were errors updating your credit card.
202
202
  credit_card_removed: Your credit card has been removed.
203
203
  password_reset_expired: This password reset is expired.
204
- password_reset_email_sent: If a valid e-mail address was entered, instructions to reset your password have been sent to "%{email}"
204
+ password_reset_email_sent: If a valid email address was entered, instructions to reset your password have been sent to "%{email}"
205
205
  password_reset: Your password has been reset.
206
206
  old_password_invalid: Your old password is not valid.
207
207
  password_required: Password is required.
208
208
  items_required: You must add an item to your cart to checkout
209
209
  order_custom_pricing: Your cart has custom pricing, you cannot edit the contents of your cart.
210
- no_available_shipping_options: There are no available shipping options for your shipping adddress.
210
+ no_available_shipping_options: There are no available shipping options for your shipping address.
211
+ download_unavailable: This download is no longer available. Contact customer support for more information.
211
212
 
212
213
  forms:
213
214
  required: '*'
@@ -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
@@ -262,6 +262,32 @@ module Workarea
262
262
 
263
263
  assert(flash[:error].present?)
264
264
  end
265
+
266
+ def test_no_required_shipping_address_options_flash_message
267
+ product = create_product(digital: true)
268
+
269
+ post storefront.cart_items_path,
270
+ params: { product_id: product.id, sku: product.skus.first, quantity: 1 }
271
+
272
+ get storefront.checkout_addresses_path
273
+
274
+ patch storefront.checkout_addresses_path,
275
+ params: {
276
+ email: 'bcrouse@weblinc.com',
277
+ billing_address: {
278
+ first_name: 'Ben',
279
+ last_name: 'Crouse',
280
+ street: '12 N. 3rd St.',
281
+ city: 'Philadelphia',
282
+ region: 'PA',
283
+ postal_code: '19106',
284
+ country: 'US',
285
+ phone_number: '2159251800'
286
+ }
287
+ }
288
+
289
+ refute(flash[:error].present?)
290
+ end
265
291
  end
266
292
  end
267
293
  end
@@ -123,6 +123,16 @@ module Workarea
123
123
  assert_includes(response.body, 'Foo A')
124
124
  assert_includes(response.body, 'Foo B')
125
125
  end
126
+
127
+ def test_not_accepting_per_page_param
128
+ one = create_product(name: 'Foo A')
129
+ two = create_product(name: 'Foo B')
130
+
131
+ get storefront.search_path(q: 'foo', page: 1, per_page: 1)
132
+ assert(response.ok?)
133
+ assert_includes(response.body, storefront.product_path(one))
134
+ assert_includes(response.body, storefront.product_path(two))
135
+ end
126
136
  end
127
137
  end
128
138
  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.4.29
4
+ version: 3.4.34
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-06-11 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.4.29
19
+ version: 3.4.34
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.4.29
26
+ version: 3.4.34
27
27
  description: Provides user-facing ecommerce storefront functionality for the Workarea
28
28
  Commerce Platform.
29
29
  email:
@@ -736,7 +736,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
736
736
  - !ruby/object:Gem::Version
737
737
  version: '0'
738
738
  requirements: []
739
- rubygems_version: 3.0.6
739
+ rubygems_version: 3.0.3
740
740
  signing_key:
741
741
  specification_version: 4
742
742
  summary: Storefront for the Workarea Commerce Platform