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 +4 -4
- data/app/controllers/workarea/storefront/checkout/addresses_controller.rb +2 -0
- data/app/controllers/workarea/storefront/users/passwords_controller.rb +5 -1
- data/app/view_models/workarea/storefront/category_view_model.rb +1 -1
- data/app/views/workarea/storefront/fulfillment_mailer/shipped.html.haml +1 -1
- data/app/views/workarea/storefront/products/templates/_option_selects.html.haml +2 -0
- data/app/views/workarea/storefront/products/templates/_option_thumbnails.html.haml +2 -0
- data/config/locales/en.yml +3 -2
- data/test/integration/workarea/storefront/categories_integration_test.rb +10 -0
- data/test/integration/workarea/storefront/checkouts_integration_test.rb +26 -0
- data/test/integration/workarea/storefront/search_integration_test.rb +10 -0
- data/test/integration/workarea/storefront/users/passwords_integration_test.rb +19 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c588d8b08c81fbfc1285b0604c0930ac4b329c0602ba31ab8f2e55dec15426e6
|
4
|
+
data.tar.gz: d595c48ad2af14dcb8eb51a28d9d9e8de6abab5e71ccee668c1b1146a2729bc1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a5c4d36837437aea5cdb7e4af8174f80aea7703d65dd43ca3445d8237a90a80aab554d7dbfd66473393bf1fc8ac2744e3850436d8c7a8219e44f0b0312f38a4
|
7
|
+
data.tar.gz: fa319e2eb878babef617a146933364fb4d06404ad9771d830435bdc6b74ecb4e211ff29f22a6943f708b35fa903e58378bff1a5355b192879dc469b14cdd17f1
|
@@ -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
|
-
|
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
|
@@ -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.
|
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'))
|
data/config/locales/en.yml
CHANGED
@@ -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
|
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
|
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.
|
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-
|
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.
|
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.
|
26
|
+
version: 3.4.35
|
27
27
|
description: Provides user-facing ecommerce storefront functionality for the Workarea
|
28
28
|
Commerce Platform.
|
29
29
|
email:
|