workarea-admin 3.4.28 → 3.4.33

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.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/workarea/admin/modules/categorized_autocomplete_fields.js +1 -1
  3. data/app/controllers/workarea/admin/application_controller.rb +1 -1
  4. data/app/controllers/workarea/admin/bulk_action_sequential_product_edits_controller.rb +6 -4
  5. data/app/controllers/workarea/admin/catalog_products_controller.rb +6 -4
  6. data/app/controllers/workarea/admin/catalog_variants_controller.rb +3 -2
  7. data/app/controllers/workarea/admin/create_catalog_products_controller.rb +8 -2
  8. data/app/view_models/workarea/admin/pricing_sku_view_model.rb +5 -3
  9. data/app/views/workarea/admin/create_catalog_products/content.html.haml +1 -1
  10. data/app/views/workarea/admin/insights/_most_discounted_products.html.haml +4 -4
  11. data/app/views/workarea/admin/pricing_skus/_cards.html.haml +7 -7
  12. data/app/views/workarea/admin/pricing_skus/edit.html.haml +5 -5
  13. data/app/views/workarea/admin/pricing_skus/index.html.haml +3 -1
  14. data/app/views/workarea/admin/pricing_skus/new.html.haml +9 -6
  15. data/app/views/workarea/admin/users/index.html.haml +3 -1
  16. data/config/locales/en.yml +1 -0
  17. data/test/integration/workarea/admin/assets_integration_test.rb +1 -3
  18. data/test/integration/workarea/admin/index_tracking_integration_test.rb +21 -0
  19. data/test/integration/workarea/admin/jump_to_integration_test.rb +29 -0
  20. data/test/integration/workarea/admin/products_integration_test.rb +13 -0
  21. data/test/system/workarea/admin/assets_system_test.rb +0 -8
  22. data/test/view_models/workarea/admin/pricing_sku_view_model_test.rb +12 -0
  23. metadata +8 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5e5e70ec8db64536691e2c00009ec4cc3fbeafa558d063613272f4e68d9d3a8
4
- data.tar.gz: fb41f84d15df3ec6e66e5005186916fec71e2e6d59b715a353254fb067edad67
3
+ metadata.gz: 2618e587d46a52104fa76a1798bbd94109034bca062d5c8a2e54212f8e609e89
4
+ data.tar.gz: 2d1d7d707d4a3ecb3776d489b3b015606ed0ebdc23cba8d3cafbd91947178f04
5
5
  SHA512:
6
- metadata.gz: a6dac33cba255d0f435cdfe82510a1bb048bab67b01a39c426441eb85edf362dd7f68be808c9eaa84594d1bb1c8eb79efff56bfce50b1ecd19d40194f66f5e22
7
- data.tar.gz: 9155090353b2d4b80e7860c4d14892dbcfd3a60ea83b1af751fd8baacb9f96085f234e1c541a301cabded3afea9d03720248e640fec99074496a10e956c06546
6
+ metadata.gz: 6aa6da1272ece5cf37f633ef8f963f7be623694fa2dd32cafe525672af2536aa6e2b104c26d7312c2992e2fd0d89d3a0a245a377b2c22dc19b77dd3e12ca840c
7
+ data.tar.gz: 7c0444ca8d947657c7ca65a8c826be735cce3fdf667d86854a4a77e443895d5f6648de6b532ca173287c8785f399db141fd0f31b6274e273bd3a1853d7757250
@@ -5,7 +5,7 @@ WORKAREA.registerModule('categorizedAutocompleteFields', (function () {
5
5
  'use strict';
6
6
 
7
7
  var getSource = function (request, response) {
8
- $.getJSON('/admin/jump_to', { q: request.term }, function (data) {
8
+ $.getJSON(WORKAREA.routes.admin.jumpToPath(), { q: request.term }, function (data) {
9
9
  response(data.results);
10
10
  });
11
11
  },
@@ -102,7 +102,7 @@ module Workarea
102
102
  end
103
103
 
104
104
  def track_index_filters
105
- session[:last_index_path] = request.fullpath
105
+ session[:last_index_path] = request.fullpath unless request.xhr? || request.format.json?
106
106
  end
107
107
  end
108
108
  end
@@ -64,19 +64,21 @@ module Workarea
64
64
  end
65
65
 
66
66
  def set_details
67
- HashUpdate.new(
67
+ @product.details = HashUpdate.new(
68
+ original: @product.details,
68
69
  adds: params[:new_details],
69
70
  updates: params[:details],
70
71
  removes: params[:details_to_remove]
71
- ).apply(@product.details)
72
+ ).result
72
73
  end
73
74
 
74
75
  def set_filters
75
- HashUpdate.new(
76
+ @product.filters = HashUpdate.new(
77
+ original: @product.filters,
76
78
  adds: params[:new_filters],
77
79
  updates: params[:filters],
78
80
  removes: params[:filters_to_remove]
79
- ).apply(@product.filters)
81
+ ).result
80
82
  end
81
83
 
82
84
  def set_images
@@ -64,19 +64,21 @@ module Workarea
64
64
  end
65
65
 
66
66
  def set_details
67
- HashUpdate.new(
67
+ @product.details = HashUpdate.new(
68
+ original: @product.details,
68
69
  adds: params[:new_details],
69
70
  updates: params[:details],
70
71
  removes: params[:details_to_remove]
71
- ).apply(@product.details)
72
+ ).result
72
73
  end
73
74
 
74
75
  def set_filters
75
- HashUpdate.new(
76
+ @product.filters = HashUpdate.new(
77
+ original: @product.filters,
76
78
  adds: params[:new_filters],
77
79
  updates: params[:filters],
78
80
  removes: params[:filters_to_remove]
79
- ).apply(@product.filters)
81
+ ).result
80
82
  end
81
83
  end
82
84
  end
@@ -83,11 +83,12 @@ module Workarea
83
83
  end
84
84
 
85
85
  def set_details
86
- HashUpdate.new(
86
+ @variant.details = HashUpdate.new(
87
+ original: @variant.details,
87
88
  adds: params[:new_details],
88
89
  updates: params[:details],
89
90
  removes: params[:details_to_remove]
90
- ).apply(@variant.details)
91
+ ).result
91
92
  end
92
93
  end
93
94
  end
@@ -74,8 +74,14 @@ module Workarea
74
74
  end
75
75
 
76
76
  def save_details
77
- HashUpdate.new(updates: params[:filters]).apply(@product.filters)
78
- HashUpdate.new(updates: params[:details]).apply(@product.details)
77
+ @product.filters = HashUpdate
78
+ .new(original: @product.filters, updates: params[:filters])
79
+ .result
80
+
81
+ @product.details = HashUpdate
82
+ .new(original: @product.details, updates: params[:details])
83
+ .result
84
+
79
85
  @product.save!
80
86
 
81
87
  flash[:success] = t('workarea.admin.create_catalog_products.flash_messages.saved')
@@ -30,14 +30,14 @@ module Workarea
30
30
  #
31
31
  # @return [Money]
32
32
  def min_price
33
- sell_prices.first.sell
33
+ sell_prices.first&.sell
34
34
  end
35
35
 
36
36
  # The highest regular price set on this SKU.
37
37
  #
38
38
  # @return [Money]
39
39
  def max_price
40
- sell_prices.last.sell
40
+ sell_prices.last&.sell
41
41
  end
42
42
 
43
43
  # Show a price range if the `min_price` and `max_price` are not
@@ -45,7 +45,7 @@ module Workarea
45
45
  #
46
46
  # @return [Boolean]
47
47
  def show_range?
48
- min_price != max_price
48
+ min_price.present? && max_price.present? && min_price != max_price
49
49
  end
50
50
 
51
51
  # This SKU is considered "on sale" if it is marked as such, or if
@@ -62,7 +62,9 @@ module Workarea
62
62
  #
63
63
  # @return [String]
64
64
  def sell_price
65
+ return if min_price.blank?
65
66
  return min_price.format unless show_range?
67
+
66
68
  "#{max_price.format} – #{min_price.format}"
67
69
  end
68
70
  end
@@ -28,7 +28,7 @@
28
28
 
29
29
  .property
30
30
  = label_tag 'product[meta_description]', t('workarea.admin.create_catalog_products.content.meta_description'), class: 'property__name'
31
- = text_field_tag 'product[meta_description]', @product.meta_description, class: 'text-box text-box--i18n', placeholder: t('workarea.admin.create_catalog_products.content.defaults_to_a_truncated_description')
31
+ = text_field_tag 'product[meta_description]', @product.meta_description, class: 'text-box text-box--i18n', placeholder: t('workarea.admin.create_catalog_products.content.defaults_to_description')
32
32
  %span.property__note= t('workarea.admin.create_catalog_products.content.provides_a_summary_that_is_displayed_on_search_engine_result_pages')
33
33
 
34
34
  .workflow-bar
@@ -18,15 +18,15 @@
18
18
  = result.product_id
19
19
  - else
20
20
  = link_to result.product.name, catalog_product_path(result.product)
21
- .insight__product-info
21
+ .insight__product-info.align-center
22
22
  %strong= insights_number_to_percentage(result.average_discount)
23
23
  = t('workarea.admin.insights.most_discounted_products.average_discount')
24
- .insight__product-info
24
+ .insight__product-info.align-center
25
25
  %strong= insights_number_to_percentage(result.discount_rate)
26
26
  = t('workarea.admin.insights.most_discounted_products.discount_rate')
27
- .insight__product-info
27
+ .insight__product-info.align-center
28
28
  %strong= number_with_delimiter(result.units_sold)
29
29
  = t('workarea.admin.insights.most_discounted_products.units_sold')
30
- .insight__product-info
30
+ .insight__product-info.align-center
31
31
  %strong= insights_number_to_percentage(result.conversion_rate)
32
32
  = t('workarea.admin.insights.most_discounted_products.conversion_rate')
@@ -14,25 +14,25 @@
14
14
  %li
15
15
  %strong #{t('workarea.admin.fields.tax_code')}:
16
16
  = model.tax_code.presence || '(none)'
17
- %li
18
- %strong #{t('workarea.admin.fields.msrp')}:
19
- - if model.msrp.blank?
20
- = t('workarea.admin.cards.attributes.no_value')
21
- - else
22
- = number_to_currency model.msrp
23
17
  %li
24
18
  %strong #{t('workarea.admin.fields.on_sale')}:
25
19
  = model.on_sale?.to_s.titleize
26
20
  %li
27
21
  %strong #{t('workarea.admin.fields.discountable')}:
28
22
  = model.discountable?.to_s.titleize
23
+ %li
24
+ %strong #{t('workarea.admin.fields.msrp')}:
25
+ - if model.msrp.blank?
26
+ = t('workarea.admin.cards.attributes.no_value')
27
+ - else
28
+ = number_to_currency model.msrp
29
+ = append_partials('admin.pricing_sku_attributes_card', pricing_sku: model)
29
30
  %li
30
31
  %strong= t('workarea.admin.fields.updated_at')
31
32
  #{local_time_ago(model.updated_at)}
32
33
  %li
33
34
  %strong= t('workarea.admin.fields.created_at')
34
35
  #{local_time_ago(model.created_at)}
35
- = append_partials('admin.pricing_sku_attributes_card', pricing_sku: model)
36
36
 
37
37
  = link_to edit_pricing_sku_path(model), class: 'card__button' do
38
38
  %span.button.button--small= t('workarea.admin.cards.attributes.button')
@@ -31,11 +31,6 @@
31
31
  = label_tag 'sku[tax_code]', t('workarea.admin.fields.tax_code'), class: 'property__name'
32
32
  = text_field_tag 'sku[tax_code]', @sku.tax_code, class: 'text-box'
33
33
 
34
- .property
35
- = label_tag 'sku_msrp', t('workarea.admin.fields.msrp'), class: 'property__name'
36
- = currency_symbol
37
- = text_field_tag 'sku[msrp]', @sku.msrp, class: 'text-box text-box--small'
38
-
39
34
  .grid
40
35
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
41
36
  .property
@@ -47,6 +42,11 @@
47
42
  %span.property__name= t('workarea.admin.fields.discountable')
48
43
  = toggle_button_for 'sku[discountable]', @sku.discountable?, title_true: t('workarea.admin.pricing_skus.allow_discounting'), title_false: t('workarea.admin.pricing_skus.disallow_discounting')
49
44
 
45
+ .property
46
+ = label_tag 'sku_msrp', t('workarea.admin.fields.msrp'), class: 'property__name'
47
+ = currency_symbol
48
+ = text_field_tag 'sku[msrp]', @sku.msrp, class: 'text-box text-box--small'
49
+
50
50
  = append_partials('admin.pricing_sku_fields', sku: @sku)
51
51
 
52
52
  .grid.grid--huge
@@ -46,6 +46,7 @@
46
46
  = check_box_tag 'select_all', nil, false, id: 'select_all', class: 'checkbox__input', data: { bulk_action_select_all: '' }
47
47
  = label_tag 'select_all', t('workarea.admin.bulk_actions.select_all'), class: 'checkbox__label'
48
48
  %th= t('workarea.admin.fields.sku')
49
+ = append_partials('admin.pricing_skus_additional_field_labels')
49
50
  %th.align-right= t('workarea.admin.fields.msrp')
50
51
  %th.align-right= t('workarea.admin.fields.sell_price')
51
52
  %th.align-center= t('workarea.admin.fields.on_sale')
@@ -61,8 +62,9 @@
61
62
  %td
62
63
  = link_to result.id, pricing_sku_path(result)
63
64
  = upcoming_changesets_icon_for(result)
65
+ = append_partials('admin.pricing_skus_additional_fields', result: result)
64
66
  %td.align-right= number_to_currency result.msrp
65
- %td.align-right= result.sell_price
67
+ %td.align-right= result.sell_price || '–'
66
68
  %td.align-center= t("workarea.admin.#{result.on_sale?}")
67
69
  %td.align-center= t("workarea.admin.#{result.discountable?}")
68
70
  %td= local_time_ago(result.updated_at)
@@ -26,13 +26,16 @@
26
26
  = label_tag 'sku[tax_code]', t('workarea.admin.fields.tax_code'), class: 'property__name'
27
27
  = text_field_tag 'sku[tax_code]', @sku.tax_code, class: 'text-box', placeholder: t('workarea.admin.pricing_skus.tax_code_placeholder')
28
28
 
29
- .property
30
- %span.property__name= t('workarea.admin.fields.on_sale')
31
- = toggle_button_for 'sku[on_sale]', @sku.on_sale?, title_true: t('workarea.admin.pricing_skus.on_sale'), title_false: t('workarea.admin.pricing_skus.not_on_sale')
29
+ .grid
30
+ .grid__cell.grid__cell--50.grid__cell--25-at-medium
31
+ .property
32
+ %span.property__name= t('workarea.admin.fields.on_sale')
33
+ = toggle_button_for 'sku[on_sale]', @sku.on_sale?, title_true: t('workarea.admin.pricing_skus.on_sale'), title_false: t('workarea.admin.pricing_skus.not_on_sale')
32
34
 
33
- .property
34
- %span.property__name= t('workarea.admin.fields.discountable')
35
- = toggle_button_for 'sku[discountable]', @sku.discountable?, title_true: t('workarea.admin.pricing_skus.allow_discounting'), title_false: t('workarea.admin.pricing_skus.disallow_discounting')
35
+ .grid__cell.grid__cell--50.grid__cell--25-at-medium
36
+ .property
37
+ %span.property__name= t('workarea.admin.fields.discountable')
38
+ = toggle_button_for 'sku[discountable]', @sku.discountable?, title_true: t('workarea.admin.pricing_skus.allow_discounting'), title_false: t('workarea.admin.pricing_skus.disallow_discounting')
36
39
 
37
40
  .property
38
41
  = label_tag 'sku_msrp', t('workarea.admin.fields.msrp'), class: 'property__name'
@@ -2,11 +2,13 @@
2
2
 
3
3
  .view
4
4
  .view__header
5
- .grid.grid--middle.grid--center
5
+ .grid.grid--right
6
6
  .grid__cell.grid__cell--50
7
7
  .view__heading
8
8
  = link_to "↑ #{t('workarea.admin.users.index.dashboard_link')}", people_dashboards_path, class: 'view__dashboard-button'
9
9
  %h1= t('workarea.admin.users.index.title')
10
+ .grid__cell.grid__cell--25
11
+ = append_partials('admin.user_index_aux_navigation')
10
12
 
11
13
  .view__container
12
14
  .browsing-controls.browsing-controls--with-divider.browsing-controls--center{ class: ('browsing-controls--filters-displayed' unless @search.toggle_facets?) }
@@ -916,6 +916,7 @@ en:
916
916
  browser_title: Browser Title
917
917
  cancel: Cancel
918
918
  defaults_to_a_truncated_description: "(defaults to a truncated description)"
919
+ defaults_to_description: "(defaults to description)"
919
920
  description: Description
920
921
  meta_description: Meta Description
921
922
  or_skip_this: or skip this
@@ -6,9 +6,7 @@ module Workarea
6
6
  include Admin::IntegrationTest
7
7
 
8
8
  def test_ensures_cors_policy_for_bulk_upload
9
- Workarea.s3.expects(:get_bucket_cors).returns(
10
- mock('Excon::Response', data: { body: { 'CORSConfiguration' => [] } })
11
- )
9
+ Workarea.s3.expects(:get_bucket_cors).returns(mock_s3_cors_response).once
12
10
  Workarea.s3.expects(:put_bucket_cors).once
13
11
  get admin.content_assets_path
14
12
  assert(response.ok?)
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ module Admin
5
+ class IndexTrackingIntegrationTest < Workarea::IntegrationTest
6
+ include Admin::IntegrationTest
7
+
8
+ def test_track_index_filters
9
+ get admin.pricing_skus_path
10
+
11
+ assert_equal(admin.pricing_skus_path, session[:last_index_path])
12
+ assert_no_changes -> { session[:last_index_path] } do
13
+ get admin.catalog_products_path(format: :json)
14
+ end
15
+ assert_no_changes -> { session[:last_index_path] } do
16
+ get admin.catalog_products_path, xhr: true
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -234,6 +234,35 @@ module Workarea
234
234
  results = JSON.parse(response.body)['results']
235
235
  assert_equal(0, results.length)
236
236
  end
237
+
238
+ def test_limiting_results_by_type
239
+ Workarea.with_config do |config|
240
+ config.jump_to_type_limit = 2
241
+ config.jump_to_results_per_type = 2
242
+
243
+ 5.times { |i| create_product(name: "Test Product #{i}") }
244
+ 5.times { |i| create_category(name: "Test Category #{i}") }
245
+
246
+ get admin.jump_to_path(q: 'test')
247
+ results = JSON.parse(response.body)['results']
248
+
249
+ assert_equal(
250
+ %w(Products Products Categories Categories),
251
+ results.map { |r| r['type'] }
252
+ )
253
+ end
254
+ end
255
+
256
+ def test_sorting_by_recency
257
+ create_user(email: 'foo-one@workarea.com', updated_at: 1.day.ago)
258
+ create_user(email: 'foo-two@workarea.com', updated_at: 1.hour.ago)
259
+ get admin.jump_to_path(q: 'foo')
260
+
261
+ results = JSON.parse(response.body)['results']
262
+ assert_equal(2, results.length)
263
+ assert_match('foo-two@workarea.com', results.first['label'])
264
+ assert_match('foo-one@workarea.com', results.second['label'])
265
+ end
237
266
  end
238
267
  end
239
268
  end
@@ -16,6 +16,19 @@ module Workarea
16
16
  assert(product.active)
17
17
  end
18
18
 
19
+ def test_updating_hash_fields_in_locales
20
+ set_locales(available: [:en, :es], default: :en, current: :en)
21
+ product = create_product(filters_translations: { 'en' => { 'Size' => ['Large'] } })
22
+
23
+ patch admin.catalog_product_path(product, locale: 'es'),
24
+ params: { new_filters: %w(Color Roja) }
25
+
26
+ assert_equal(
27
+ { 'en' => { 'Size' => ['Large'] }, 'es' => { 'Color' => ['Roja'] } },
28
+ product.reload.filters_translations
29
+ )
30
+ end
31
+
19
32
  def test_returns_a_list_of_filters
20
33
  create_product(filters: { 'Color' => 'Blue' })
21
34
 
@@ -5,14 +5,7 @@ module Workarea
5
5
  class AssetsSystemTest < SystemTest
6
6
  include Admin::IntegrationTest
7
7
 
8
- def mock_get_bucket_cors
9
- Workarea.s3.expects(:get_bucket_cors).returns(
10
- mock('Excon::Response', data: { body: { 'CORSConfiguration' => [] } })
11
- )
12
- end
13
-
14
8
  def test_management
15
- mock_get_bucket_cors
16
9
  visit admin.content_assets_path
17
10
  click_link 'add_asset'
18
11
 
@@ -38,7 +31,6 @@ module Workarea
38
31
  end
39
32
 
40
33
  def test_insertion
41
- mock_get_bucket_cors
42
34
  asset = create_asset
43
35
 
44
36
  content = create_content(
@@ -30,6 +30,10 @@ module Workarea
30
30
  @sku.update!(on_sale: false)
31
31
 
32
32
  assert_equal(3.to_m, @sku.min_price)
33
+
34
+ @sku.prices.destroy_all
35
+
36
+ assert_nil(@sku.min_price)
33
37
  end
34
38
 
35
39
  def test_max_price
@@ -38,6 +42,10 @@ module Workarea
38
42
  @sku.update!(on_sale: false)
39
43
 
40
44
  assert_equal(4.to_m, @sku.max_price)
45
+
46
+ @sku.prices.destroy_all
47
+
48
+ assert_nil(@sku.min_price)
41
49
  end
42
50
 
43
51
  def test_show_range?
@@ -46,6 +54,10 @@ module Workarea
46
54
  @sku.prices.last.destroy!
47
55
 
48
56
  refute(@sku.show_range?)
57
+
58
+ @sku.prices.destroy_all
59
+
60
+ refute(@sku.show_range?)
49
61
  end
50
62
 
51
63
  def test_on_sale?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workarea-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.28
4
+ version: 3.4.33
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-03 00:00:00.000000000 Z
11
+ date: 2020-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: workarea-core
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.4.28
19
+ version: 3.4.33
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.28
26
+ version: 3.4.33
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: workarea-storefront
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.4.28
33
+ version: 3.4.33
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 3.4.28
40
+ version: 3.4.33
41
41
  description: Provides site administration functionality for the Workarea Commerce
42
42
  Platform.
43
43
  email:
@@ -1220,6 +1220,7 @@ files:
1220
1220
  - test/integration/workarea/admin/help_articles_integration_test.rb
1221
1221
  - test/integration/workarea/admin/impersonations_integration_test.rb
1222
1222
  - test/integration/workarea/admin/import_taxes_integration_test.rb
1223
+ - test/integration/workarea/admin/index_tracking_integration_test.rb
1223
1224
  - test/integration/workarea/admin/inventory_skus_integration_test.rb
1224
1225
  - test/integration/workarea/admin/jump_to_integration_test.rb
1225
1226
  - test/integration/workarea/admin/menus_integration_test.rb
@@ -1400,7 +1401,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1400
1401
  - !ruby/object:Gem::Version
1401
1402
  version: '0'
1402
1403
  requirements: []
1403
- rubygems_version: 3.0.6
1404
+ rubygems_version: 3.0.3
1404
1405
  signing_key:
1405
1406
  specification_version: 4
1406
1407
  summary: Admin for the Workarea Commerce Platform