workarea-storefront 3.5.18 → 3.5.23

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