workarea-storefront 3.4.29 → 3.4.34

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.
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