workarea-storefront 3.5.18 → 3.5.23

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: 73d0f3cc67a6f0fe570a8a9c8bc5cef2474426b3094bf04359e4fa20beaf414e
4
- data.tar.gz: 251a2919ee9a1f423076c962988f2b2781c8affd0758aab01ea9edc4dc1a2c97
3
+ metadata.gz: b1da1deb30c161dd030c597ff2f756e7cada539898349cc1b69e792963300ff4
4
+ data.tar.gz: d1097a4b6978e1ea04f5b569d52540502f24b1b8251a2191289b25bc6ade1190
5
5
  SHA512:
6
- metadata.gz: cc3b2d238021e016a3e1b4886b821823d5fc3e6c7731bb4a40fbe4ad9470935849f2f295f51974d07c6687e465ac7ed2cd7b847f0fb08d7a6019ed94e23bfdb7
7
- data.tar.gz: eb4e7ff34f196d2bebf42a280c3405f67805536a45615e76f81ea19e0c251dd152b5a7852410c8377d91a9f079683bf8f4bdae7d07915e973c0f0113277ff7c6
6
+ metadata.gz: 66203f30dd011929002a066087c4d000bfe0a86e246b72f08fd2487a6d3cd6af4733f367ecf531969a786e1d671991a8188c2eba2fe9beaf3379e001ab1e881d
7
+ data.tar.gz: 9fcbcfce3d4df843a4bdcea43d90022f269314a8ccae27d23af2c99982bf0b255e4fad67304c0a87448e60d5553968cd270703b3c6f27a00be504ddf8f98b853
@@ -11,13 +11,14 @@ module Workarea
11
11
  after_action :check_inventory, except: :create
12
12
 
13
13
  def create
14
+ @cart = CartViewModel.new(current_order, view_model_options)
15
+
14
16
  # TODO: for v4, use AddItemToCart for this.
15
17
  if current_order.add_item(item_params.to_h.merge(item_details.to_h))
16
18
  check_inventory
17
19
 
18
20
  Pricing.perform(current_order, current_shippings)
19
21
 
20
- @cart = CartViewModel.new(current_order, view_model_options)
21
22
  @item = OrderItemViewModel.wrap(
22
23
  current_order.items.find_existing(
23
24
  item_params[:sku],
@@ -10,6 +10,8 @@ module Workarea
10
10
  else
11
11
  new(model, options)
12
12
  end
13
+ rescue NameError
14
+ new(model, options)
13
15
  end
14
16
 
15
17
  def breadcrumbs
@@ -47,6 +47,18 @@ module Workarea
47
47
  assert_equal(5.to_m, order.items.first.total_price)
48
48
  end
49
49
 
50
+ def test_fail_to_add_an_item
51
+ post storefront.cart_items_path,
52
+ params: {
53
+ product_id: @product.id,
54
+ sku: 'SKU1',
55
+ quantity: -1
56
+ }
57
+
58
+ assert_response(:success)
59
+ assert_empty(Order.all)
60
+ end
61
+
50
62
  def test_adding_product_with_shared_skus
51
63
  product_2 = Catalog::Product.create!(name: 'Product', variants: [{ sku: 'SKU1' }])
52
64
 
@@ -123,6 +123,84 @@ module Workarea
123
123
 
124
124
  assert(response.ok?)
125
125
  end
126
+
127
+ def test_metrics_tracking
128
+ super_admin = create_user(password: 'W3bl1nc!', super_admin: true)
129
+ customer = create_user(email: 'bcrouse@workarea.com', password: 'W3bl1nc!')
130
+ product = create_product
131
+ create_shipping_service(
132
+ name: 'Ground',
133
+ tax_code: '001',
134
+ rates: [{ price: 7.to_m }]
135
+ )
136
+
137
+ post storefront.login_path,
138
+ params: { email: super_admin.email, password: 'W3bl1nc!' }
139
+
140
+ admin_current_email_cookie = cookies[:email]
141
+
142
+ post admin.impersonations_path,
143
+ params: { user_id: customer.id }
144
+
145
+ refute_equal(admin_current_email_cookie, cookies[:email])
146
+ customer_current_email_cookie = cookies[:email]
147
+
148
+ post storefront.cart_items_path,
149
+ params: {
150
+ product_id: product.id,
151
+ sku: product.skus.first,
152
+ quantity: 2
153
+ }
154
+
155
+ patch storefront.checkout_addresses_path,
156
+ params: {
157
+ billing_address: {
158
+ first_name: 'Ben',
159
+ last_name: 'Crouse',
160
+ street: '12 N. 3rd St.',
161
+ city: 'Philadelphia',
162
+ region: 'PA',
163
+ postal_code: '19106',
164
+ country: 'US',
165
+ phone_number: '2159251800'
166
+ },
167
+ shipping_address: {
168
+ first_name: 'Ben',
169
+ last_name: 'Crouse',
170
+ street: '22 S. 3rd St.',
171
+ city: 'Philadelphia',
172
+ region: 'PA',
173
+ postal_code: '19106',
174
+ country: 'US',
175
+ phone_number: '2159251800'
176
+ }
177
+ }
178
+
179
+ assert_equal(customer_current_email_cookie, cookies[:email])
180
+
181
+ patch storefront.checkout_place_order_path,
182
+ params: {
183
+ payment: 'new_card',
184
+ credit_card: {
185
+ number: '1',
186
+ month: 1,
187
+ year: next_year,
188
+ cvv: '999'
189
+ }
190
+ }
191
+
192
+ assert_equal(customer_current_email_cookie, cookies[:email])
193
+ delete admin.impersonations_path
194
+ assert_equal(admin_current_email_cookie, cookies[:email])
195
+
196
+ super_admin_metrics = Metrics::User.find(super_admin.email)
197
+ assert_equal(0, super_admin_metrics.orders)
198
+ assert_equal(0, super_admin_metrics.revenue)
199
+
200
+ customer_metrics = Metrics::User.find(customer.email)
201
+ assert_equal(1, customer_metrics.orders)
202
+ assert(customer_metrics.revenue.positive?)
203
+ end
126
204
  end
127
205
  end
128
206
  end
@@ -5,7 +5,9 @@ module Workarea
5
5
  class StoreCreditIntegrationTest < Workarea::IntegrationTest
6
6
  include Storefront::IntegrationTest
7
7
 
8
- def setup
8
+ setup :setup_supporting_data
9
+
10
+ def setup_supporting_data
9
11
  @user = create_user(email: 'bcrouse@workarea.com', password: 'W3bl1nc!')
10
12
 
11
13
  @tax = create_tax_category(
@@ -113,7 +113,7 @@ module Workarea
113
113
  assert(page.has_content?('foo bar'))
114
114
 
115
115
  resize_window_to('medium')
116
- refute(page.has_content?('foo bar'))
116
+ refute_text('foo bar')
117
117
 
118
118
  resize_window_to('wide')
119
119
  assert(page.has_content?('foo bar'))
@@ -69,7 +69,7 @@ module Workarea
69
69
  click_button t('workarea.storefront.forms.save')
70
70
  end
71
71
 
72
- refute(page.has_content?('Success'))
72
+ refute_text('Success')
73
73
  assert(page.has_content?(I18n.t('workarea.payment.store_credit_card_failure')))
74
74
  end
75
75
  end
@@ -54,7 +54,7 @@ module Workarea
54
54
  assert_current_path(storefront.root_path)
55
55
 
56
56
  page.execute_script("$('body').trigger('click');")
57
- refute(page.has_content?('Foo'))
57
+ refute_text('Foo')
58
58
  end
59
59
 
60
60
  def test_left_navigation
@@ -66,7 +66,7 @@ module Workarea
66
66
 
67
67
  secondary.navigable.update_attributes!(active: false)
68
68
  visit storefront.page_path(primary.navigable)
69
- refute(page.has_content?('Foo'))
69
+ refute_text('Foo')
70
70
  end
71
71
  end
72
72
  end
@@ -59,7 +59,7 @@ module Workarea
59
59
 
60
60
  scroll_to_bottom
61
61
 
62
- refute(page.has_content?(t('workarea.storefront.pagination.next_page')))
62
+ refute_text(t('workarea.storefront.pagination.next_page'))
63
63
  click_link t('workarea.storefront.pagination.load_more')
64
64
 
65
65
  assert_current_path(storefront.category_path(category))
@@ -70,7 +70,7 @@ module Workarea
70
70
  assert(page.has_content?('Product 5'))
71
71
  assert(page.has_content?('Product 6'))
72
72
 
73
- refute(page.has_content?(t('workarea.storefront.pagination.load_more')))
73
+ refute_text(t('workarea.storefront.pagination.load_more'))
74
74
 
75
75
  find('a', text: 'Product 6').click
76
76
  page.execute_script("history.back()")
@@ -79,7 +79,7 @@ module Workarea
79
79
 
80
80
  wait_for_xhr
81
81
 
82
- refute(page.has_content?(t('workarea.storefront.pagination.load_more')))
82
+ refute_text(t('workarea.storefront.pagination.load_more'))
83
83
 
84
84
  assert_match(/PROD1.*PROD2.*PROD3.*PROD4.*PROD5.*PROD6/m, page.html)
85
85
  end
@@ -95,7 +95,7 @@ module Workarea
95
95
 
96
96
  scroll_to_bottom
97
97
 
98
- refute(page.has_content?(t('workarea.storefront.pagination.next_page')))
98
+ refute_text(t('workarea.storefront.pagination.next_page'))
99
99
  click_link t('workarea.storefront.pagination.load_more')
100
100
 
101
101
  assert_current_path(storefront.search_path(q: 'Product'))
@@ -106,7 +106,7 @@ module Workarea
106
106
  assert(page.has_content?('Product 5'))
107
107
  assert(page.has_content?('Product 6'))
108
108
 
109
- refute(page.has_content?(t('workarea.storefront.pagination.load_more')))
109
+ refute_text(t('workarea.storefront.pagination.load_more'))
110
110
 
111
111
  find('a', text: 'Product 6').click
112
112
  page.execute_script("history.back()")
@@ -115,7 +115,7 @@ module Workarea
115
115
 
116
116
  wait_for_xhr
117
117
 
118
- refute(page.has_content?(t('workarea.storefront.pagination.load_more')))
118
+ refute_text(t('workarea.storefront.pagination.load_more'))
119
119
 
120
120
  assert(page.has_content?('Product 1'))
121
121
  assert(page.has_content?('Product 2'))
@@ -15,6 +15,14 @@ module Workarea
15
15
  view_model = ProductViewModel.wrap(@product, one: '1')
16
16
  assert_instance_of(ProductTemplates::OptionSelectsViewModel, view_model)
17
17
  assert_equal('1', view_model.options[:one])
18
+
19
+ Workarea.with_config do |config|
20
+ config.product_templates << :no_view_model
21
+ @product.template = 'no_view_model'
22
+ view_model = ProductViewModel.wrap(@product, one: '1')
23
+
24
+ assert_kind_of(ProductViewModel, view_model)
25
+ end
18
26
  end
19
27
 
20
28
  def test_cache_key
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.18
4
+ version: 3.5.23
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-09-01 00:00:00.000000000 Z
11
+ date: 2020-11-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.5.18
19
+ version: 3.5.23
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.18
26
+ version: 3.5.23
27
27
  description: Provides user-facing ecommerce storefront functionality for the Workarea
28
28
  Commerce Platform.
29
29
  email: