workarea-storefront 3.4.30 → 3.4.35

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: e9f6fa3a951c3d12fedefc302b38c90265351850580d4dfc159700622e30589c
4
- data.tar.gz: e989f30cd502dfc2ccd005bb93f379701548e0e87db65e78bf7414cc865aa71e
3
+ metadata.gz: c588d8b08c81fbfc1285b0604c0930ac4b329c0602ba31ab8f2e55dec15426e6
4
+ data.tar.gz: d595c48ad2af14dcb8eb51a28d9d9e8de6abab5e71ccee668c1b1146a2729bc1
5
5
  SHA512:
6
- metadata.gz: 406cf8056c0038a5a035e772c48692e97a5d964be38469582f7fb7f1a7cbfe4f99c9ec2cd2a78c878982028d7b4fadf56421f56fe0670a5cda805363890dfa82
7
- data.tar.gz: efc2aeeb8127384987139327f39d7b848c6df3b28c971b6fb16f0d74cda9c1242801b4a69655413eefa720c8f0de7964f075cf5e970f17101faed616d8e3449d
6
+ metadata.gz: 6a5c4d36837437aea5cdb7e4af8174f80aea7703d65dd43ca3445d8237a90a80aab554d7dbfd66473393bf1fc8ac2744e3850436d8c7a8219e44f0b0312f38a4
7
+ data.tar.gz: fa319e2eb878babef617a146933364fb4d06404ad9771d830435bdc6b74ecb4e211ff29f22a6943f708b35fa903e58378bff1a5355b192879dc469b14cdd17f1
@@ -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.30
4
+ version: 3.4.35
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-31 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.4.30
19
+ version: 3.4.35
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.30
26
+ version: 3.4.35
27
27
  description: Provides user-facing ecommerce storefront functionality for the Workarea
28
28
  Commerce Platform.
29
29
  email: