workarea-wish_lists 3.0.5 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.json +35 -0
  3. data/.github/workflows/ci.yml +60 -0
  4. data/.rubocop.yml +3 -0
  5. data/.stylelintrc.json +8 -0
  6. data/CHANGELOG.md +0 -51
  7. data/Gemfile +3 -2
  8. data/Rakefile +5 -4
  9. data/app/assets/javascripts/workarea/storefront/wish_lists/modules/wish_list_analytics.js +31 -0
  10. data/app/controllers/workarea/admin/reports_controller.decorator +10 -0
  11. data/app/controllers/workarea/storefront/analytics_controller.decorator +17 -0
  12. data/app/controllers/workarea/storefront/users/wish_lists_controller.rb +7 -6
  13. data/app/helpers/workarea/storefront/wish_list_analytics_helper.rb +21 -0
  14. data/app/models/workarea/insights/most_wish_listed_products.rb +32 -0
  15. data/app/models/workarea/metrics/product_by_day.decorator +10 -0
  16. data/app/models/workarea/wish_list.rb +1 -2
  17. data/app/models/workarea/wish_list/item.rb +1 -2
  18. data/app/queries/workarea/order_metrics.decorator +24 -0
  19. data/app/queries/workarea/reports/wish_list_products.rb +51 -0
  20. data/app/seeds/workarea/wish_list_seeds.rb +11 -0
  21. data/app/services/workarea/wish_list_session.rb +11 -11
  22. data/app/view_models/workarea/admin/dashboards/reports_view_model.decorator +10 -0
  23. data/app/view_models/workarea/admin/reports/wish_list_products_view_model.rb +20 -0
  24. data/app/views/workarea/admin/dashboards/_wish_list_products_card.html.haml +17 -0
  25. data/app/views/workarea/admin/insights/_most_wish_listed_products.html.haml +22 -0
  26. data/app/views/workarea/admin/reports/wish_list_products.html.haml +38 -0
  27. data/app/views/workarea/storefront/carts/_move_to_wish_list.html.haml +1 -1
  28. data/app/views/workarea/storefront/pages/_wish_lists_robots.text.erb +1 -0
  29. data/app/views/workarea/storefront/products/_add_to_wish_list.html.haml +1 -1
  30. data/app/views/workarea/storefront/users/accounts/_wish_list_summary.html.haml +3 -1
  31. data/app/views/workarea/storefront/users/wish_lists/show.html.haml +9 -4
  32. data/app/views/workarea/storefront/wish_lists/show.html.haml +8 -3
  33. data/app/workers/workarea/save_order_metrics.decorator +21 -0
  34. data/config/initializers/append_points.rb +12 -1
  35. data/config/locales/en.yml +20 -0
  36. data/config/routes.rb +7 -0
  37. data/lib/workarea/wish_lists/engine.rb +6 -0
  38. data/lib/workarea/wish_lists/version.rb +1 -1
  39. data/package.json +9 -0
  40. data/test/dummy/config/initializers/session_store.rb +3 -1
  41. data/test/integration/workarea/storefront/wish_lists_integration_test.rb +2 -2
  42. data/test/models/workarea/insights/most_wish_listed_products_test.rb +63 -0
  43. data/test/queries/workarea/reports/wish_list_products_test.rb +122 -0
  44. data/test/queries/workarea/wish_list_order_metrics_test.rb +49 -0
  45. data/test/system/workarea/admin/wish_list_products_report_system_test.rb +44 -0
  46. data/test/system/workarea/storefront/wish_list_analytics_system_test.rb +75 -0
  47. data/test/view_models/workarea/storefront/{wish_list_user_view_model_test.rb → user_view_model_test.rb} +0 -0
  48. data/workarea-wish_lists.gemspec +4 -4
  49. metadata +35 -9
@@ -0,0 +1,63 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ module Insights
5
+ class MostWishListedProductsTest < TestCase
6
+ setup :add_data, :time_travel
7
+
8
+ def add_data
9
+ Metrics::ProductByDay.inc(
10
+ key: { product_id: 'foo' },
11
+ at: Time.zone.local(2018, 10, 27),
12
+ wish_list_adds: 1
13
+ )
14
+
15
+ Metrics::ProductByDay.inc(
16
+ key: { product_id: 'foo' },
17
+ at: Time.zone.local(2018, 10, 28),
18
+ wish_list_adds: 2
19
+ )
20
+
21
+ Metrics::ProductByDay.inc(
22
+ key: { product_id: 'foo' },
23
+ at: Time.zone.local(2018, 10, 29),
24
+ wish_list_adds: 3
25
+ )
26
+
27
+ Metrics::ProductByDay.inc(
28
+ key: { product_id: 'bar' },
29
+ at: Time.zone.local(2018, 10, 27),
30
+ wish_list_adds: 3
31
+ )
32
+
33
+ Metrics::ProductByDay.inc(
34
+ key: { product_id: 'bar' },
35
+ at: Time.zone.local(2018, 10, 28),
36
+ wish_list_adds: 4
37
+ )
38
+
39
+ Metrics::ProductByDay.inc(
40
+ key: { product_id: 'bar' },
41
+ at: Time.zone.local(2018, 10, 29),
42
+ wish_list_adds: 5
43
+ )
44
+ end
45
+
46
+ def time_travel
47
+ travel_to Time.zone.local(2018, 11, 1)
48
+ end
49
+
50
+ def test_generate_monthly!
51
+ MostWishListedProducts.generate_monthly!
52
+ assert_equal(1, MostWishListedProducts.count)
53
+
54
+ wish_listed_products = MostWishListedProducts.first
55
+ assert_equal(2, wish_listed_products.results.size)
56
+ assert_equal('bar', wish_listed_products.results.first['product_id'])
57
+ assert_in_delta(12, wish_listed_products.results.first['adds'])
58
+ assert_equal('foo', wish_listed_products.results.second['product_id'])
59
+ assert_in_delta(6, wish_listed_products.results.second['adds'])
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,122 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ module Reports
5
+ class WishListProductsTest < TestCase
6
+ setup :add_data, :time_travel
7
+
8
+ def add_data
9
+ Metrics::ProductByDay.inc(
10
+ key: { product_id: 'foo' },
11
+ at: Time.zone.local(2018, 10, 27),
12
+ wish_list_units_sold: 2,
13
+ wish_list_revenue: 10.to_m,
14
+ wish_list_adds: 2,
15
+ wish_list_deletes: 1
16
+ )
17
+
18
+ Metrics::ProductByDay.inc(
19
+ key: { product_id: 'foo' },
20
+ at: Time.zone.local(2018, 10, 28),
21
+ wish_list_units_sold: 4,
22
+ wish_list_revenue: 15.to_m,
23
+ wish_list_adds: 1,
24
+ wish_list_deletes: 0
25
+ )
26
+
27
+ Metrics::ProductByDay.inc(
28
+ key: { product_id: 'foo' },
29
+ at: Time.zone.local(2018, 10, 29),
30
+ wish_list_units_sold: 6,
31
+ wish_list_revenue: 27.to_m,
32
+ wish_list_adds: 1,
33
+ wish_list_deletes: 1
34
+ )
35
+
36
+ Metrics::ProductByDay.inc(
37
+ key: { product_id: 'bar' },
38
+ at: Time.zone.local(2018, 10, 27),
39
+ wish_list_units_sold: 3,
40
+ wish_list_revenue: 11.to_m,
41
+ wish_list_adds: 2,
42
+ wish_list_deletes: 2
43
+ )
44
+
45
+ Metrics::ProductByDay.inc(
46
+ key: { product_id: 'bar' },
47
+ at: Time.zone.local(2018, 10, 28),
48
+ wish_list_units_sold: 5,
49
+ wish_list_revenue: 15.to_m,
50
+ wish_list_adds: 1,
51
+ wish_list_deletes: 1
52
+ )
53
+
54
+ Metrics::ProductByDay.inc(
55
+ key: { product_id: 'bar' },
56
+ at: Time.zone.local(2018, 10, 29),
57
+ wish_list_units_sold: 7,
58
+ wish_list_revenue: 27.to_m,
59
+ wish_list_adds: 0,
60
+ wish_list_deletes: 1
61
+ )
62
+ end
63
+
64
+ def time_travel
65
+ travel_to Time.zone.local(2018, 10, 30)
66
+ end
67
+
68
+ def test_grouping_and_summing
69
+ report = WishListProducts.new
70
+ assert_equal(2, report.results.length)
71
+
72
+ foo = report.results.detect { |r| r['_id'] == 'foo' }
73
+ assert_equal(12, foo['units_sold'])
74
+ assert_equal(52, foo['revenue'])
75
+ assert_equal(4, foo['adds'])
76
+ assert_equal(2, foo['deletes'])
77
+
78
+ bar = report.results.detect { |r| r['_id'] == 'bar' }
79
+ assert_equal(15, bar['units_sold'])
80
+ assert_equal(53, bar['revenue'])
81
+ assert_equal(3, bar['adds'])
82
+ assert_equal(4, bar['deletes'])
83
+ end
84
+
85
+ def test_date_ranges
86
+ report = WishListProducts.new
87
+ foo = report.results.detect { |r| r['_id'] == 'foo' }
88
+ assert_equal(4, foo['adds'])
89
+
90
+ report = WishListProducts.new(starts_at: '2018-10-28', ends_at: '2018-10-28')
91
+ foo = report.results.detect { |r| r['_id'] == 'foo' }
92
+ assert_equal(1, foo['adds'])
93
+
94
+ report = WishListProducts.new(starts_at: '2018-10-28', ends_at: '2018-10-29')
95
+ foo = report.results.detect { |r| r['_id'] == 'foo' }
96
+ assert_equal(2, foo['adds'])
97
+
98
+ report = WishListProducts.new(starts_at: '2018-10-28')
99
+ foo = report.results.detect { |r| r['_id'] == 'foo' }
100
+ assert_equal(2, foo['adds'])
101
+
102
+ report = WishListProducts.new(ends_at: '2018-10-28')
103
+ foo = report.results.detect { |r| r['_id'] == 'foo' }
104
+ assert_equal(3, foo['adds'])
105
+ end
106
+
107
+ def test_sorting
108
+ report = WishListProducts.new(sort_by: 'adds', sort_direction: 'asc')
109
+ assert_equal('bar', report.results.first['_id'])
110
+
111
+ report = WishListProducts.new(sort_by: 'adds', sort_direction: 'desc')
112
+ assert_equal('foo', report.results.first['_id'])
113
+
114
+ report = WishListProducts.new(sort_by: 'units_sold', sort_direction: 'asc')
115
+ assert_equal('foo', report.results.first['_id'])
116
+
117
+ report = WishListProducts.new(sort_by: 'units_sold', sort_direction: 'desc')
118
+ assert_equal('bar', report.results.first['_id'])
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,49 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ class WishListOrderMetricsTest < TestCase
5
+ def test_products_from_wish_lists
6
+ product_one = create_product(
7
+ name: 'Foo 1',
8
+ variants: [
9
+ { sku: 'SKU1', regular: 5.to_m },
10
+ { sku: 'SKU11', regular: 10.to_m }
11
+ ]
12
+ )
13
+
14
+ product_two = create_product(
15
+ name: 'Foo 2',
16
+ variants: [
17
+ { sku: 'SKU2', regular: 6.to_m },
18
+ { sku: 'SKU22', regular: 12.to_m }
19
+ ]
20
+ )
21
+
22
+ user = create_user
23
+ wish_list = WishList.for_user(user.id)
24
+
25
+ order = create_order(
26
+ email: 'test@workarea.com',
27
+ items: [
28
+ { product_id: product_one.id, sku: 'SKU1', quantity: 2, via: wish_list.to_gid_param },
29
+ { product_id: product_one.id, sku: 'SKU11', quantity: 1, via: wish_list.to_gid_param },
30
+ { product_id: product_two.id, sku: 'SKU2', quantity: 1 },
31
+ { product_id: product_two.id, sku: 'SKU22', quantity: 2, via: wish_list.to_gid_param }
32
+ ]
33
+ )
34
+
35
+ Pricing.perform(order)
36
+ complete_checkout(order)
37
+
38
+ results = OrderMetrics.new(order).products_from_wish_lists
39
+
40
+ product_data = results[product_one.id]
41
+ assert_equal(3, product_data[:wish_list_units_sold])
42
+ assert_equal(20.to_m, product_data[:wish_list_revenue])
43
+
44
+ product_data = results[product_two.id]
45
+ assert_equal(2, product_data[:wish_list_units_sold])
46
+ assert_equal(24.to_m, product_data[:wish_list_revenue])
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,44 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ module Admin
5
+ class WishListProductsReportSystemTest < Workarea::SystemTest
6
+ include Admin::IntegrationTest
7
+
8
+ def test_wish_list_products_report
9
+ create_product(id: 'foo', name: 'Foo')
10
+
11
+ Metrics::ProductByDay.inc(
12
+ key: { product_id: 'foo' },
13
+ wish_list_adds: 1,
14
+ wish_list_units_sold: 5
15
+ )
16
+ Metrics::ProductByDay.inc(
17
+ key: { product_id: 'bar' },
18
+ wish_list_adds: 4,
19
+ wish_list_units_sold: 3
20
+ )
21
+
22
+ visit admin.wish_list_products_report_path
23
+ assert(page.has_content?('Foo'))
24
+ assert(page.has_content?('bar'))
25
+ assert(page.has_content?('1'))
26
+ assert(page.has_content?('5'))
27
+ assert(page.has_content?('4'))
28
+ assert(page.has_content?('3'))
29
+
30
+ click_link t('workarea.admin.fields.adds')
31
+ assert(page.has_content?("#{t('workarea.admin.fields.adds')} ↓"))
32
+ assert(page.has_ordered_text?('bar', 'Foo'))
33
+
34
+ click_link t('workarea.admin.fields.units_sold')
35
+ assert(page.has_content?("#{t('workarea.admin.fields.units_sold')} ↓"))
36
+ assert(page.has_ordered_text?('Foo', 'bar'))
37
+
38
+ click_link t('workarea.admin.fields.units_sold')
39
+ assert(page.has_content?("#{t('workarea.admin.fields.units_sold')} ↑"))
40
+ assert(page.has_ordered_text?('bar', 'Foo'))
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,75 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ module Storefront
5
+ class WishListAnalyticsSystemTest < Workarea::SystemTest
6
+ include Storefront::SystemTest
7
+
8
+ setup :product, :login_user
9
+
10
+ def find_analytics_events(for_event: nil)
11
+ all_events = page.evaluate_script('WORKAREA.analytics.events')
12
+
13
+ if for_event.blank?
14
+ all_events
15
+ else
16
+ all_events.select { |e| e['name'] == for_event }
17
+ end
18
+ end
19
+
20
+ def disable_dom_events
21
+ page.execute_script('WORKAREA.analytics.disableDomEvents();')
22
+ end
23
+
24
+ def product
25
+ @product ||= create_product(name: 'Test Product')
26
+ end
27
+
28
+ def login_user
29
+ @user ||= create_user(email: 'test@workarea.com', password: 'W3bl1nc!')
30
+
31
+ visit storefront.login_path
32
+
33
+ within '#login_form' do
34
+ fill_in 'email', with: 'test@workarea.com'
35
+ fill_in 'password', with: 'W3bl1nc!'
36
+ click_button t('workarea.storefront.users.login')
37
+ end
38
+ end
39
+
40
+ def test_announcing_add_to_wish_list_event
41
+ visit storefront.product_path(product)
42
+ click_button t('workarea.storefront.products.add_to_cart')
43
+
44
+ visit storefront.cart_path
45
+
46
+ disable_dom_events
47
+ click_button t('workarea.storefront.wish_lists.move_to_wish_list')
48
+
49
+ events = find_analytics_events(for_event: 'addToWishList')
50
+ assert_equal(1, events.count)
51
+ payload = events.first['arguments'].first
52
+
53
+ assert_equal(product.id, payload['id'])
54
+ assert_equal('Test Product', payload['name'])
55
+ end
56
+
57
+ def test_announcing_remove_from_wish_list_event
58
+ visit storefront.product_path(product)
59
+ click_link t('workarea.storefront.wish_lists.add_to_wish_list')
60
+
61
+ visit storefront.users_wish_list_path
62
+
63
+ disable_dom_events
64
+ click_button 'remove_item'
65
+
66
+ events = find_analytics_events(for_event: 'removeFromWishList')
67
+ assert_equal(1, events.count)
68
+ payload = events.first['arguments'].first
69
+
70
+ assert_equal(product.id, payload['id'])
71
+ assert_equal('Test Product', payload['name'])
72
+ end
73
+ end
74
+ end
75
+ end
@@ -6,10 +6,10 @@ Gem::Specification.new do |s|
6
6
  s.name = 'workarea-wish_lists'
7
7
  s.version = Workarea::WishLists::VERSION
8
8
  s.authors = ['bcrouse']
9
- s.email = ['bcrouse@weblinc.com']
9
+ s.email = ['bcrouse@workarea.com']
10
10
  s.homepage = 'https://github.com/workarea-commerce/workarea-wish-lists'
11
- s.summary = 'Wish Lists plugin for the Workarea ecommerce platform'
12
- s.description = "Adds a wish list to user's account in the Workarea ecommerce platform"
11
+ s.summary = 'Wish Lists plugin for the Workarea Commerce Platform'
12
+ s.description = "Adds a wish list to a customer's account in the Workarea Commerce Platform"
13
13
 
14
14
  s.files = `git ls-files`.split("\n")
15
15
 
@@ -17,5 +17,5 @@ Gem::Specification.new do |s|
17
17
 
18
18
  s.required_ruby_version = '>= 2.3.0'
19
19
 
20
- s.add_dependency 'workarea', '~> 3.x', '>= 3.3.x'
20
+ s.add_dependency 'workarea', '~> 3.x', '>= 3.5.x'
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workarea-wish_lists
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.5
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bcrouse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-22 00:00:00.000000000 Z
11
+ date: 2019-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: workarea
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 3.x
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.3.x
22
+ version: 3.5.x
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,10 +29,10 @@ dependencies:
29
29
  version: 3.x
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.3.x
33
- description: Adds a wish list to user's account in the Workarea ecommerce platform
32
+ version: 3.5.x
33
+ description: Adds a wish list to a customer's account in the Workarea Commerce Platform
34
34
  email:
35
- - bcrouse@weblinc.com
35
+ - bcrouse@workarea.com
36
36
  executables: []
37
37
  extensions: []
38
38
  extra_rdoc_files: []
@@ -40,11 +40,15 @@ files:
40
40
  - ".editorconfig"
41
41
  - ".eslintignore"
42
42
  - ".eslintrc"
43
+ - ".eslintrc.json"
43
44
  - ".github/ISSUE_TEMPLATE/bug_report.md"
44
45
  - ".github/ISSUE_TEMPLATE/documentation-request.md"
45
46
  - ".github/ISSUE_TEMPLATE/feature_request.md"
47
+ - ".github/workflows/ci.yml"
46
48
  - ".gitignore"
49
+ - ".rubocop.yml"
47
50
  - ".scss-lint.yml"
51
+ - ".stylelintrc.json"
48
52
  - ".yardopts"
49
53
  - CHANGELOG.md
50
54
  - CODE_OF_CONDUCT.md
@@ -53,32 +57,46 @@ files:
53
57
  - LICENSE
54
58
  - README.md
55
59
  - Rakefile
60
+ - app/assets/javascripts/workarea/storefront/wish_lists/modules/wish_list_analytics.js
56
61
  - app/assets/javascripts/workarea/storefront/wish_lists/modules/wish_list_button.js
57
62
  - app/assets/javascripts/workarea/storefront/wish_lists/modules/wish_list_public_quantity_fields.js
58
63
  - app/assets/javascripts/workarea/storefront/wish_lists/templates/hidden_input.jst.ejs
59
64
  - app/assets/stylesheets/workarea/storefront/wish_lists/components/_wish_list_button.scss
60
65
  - app/assets/stylesheets/workarea/storefront/wish_lists/components/_wish_lists.scss
66
+ - app/controllers/workarea/admin/reports_controller.decorator
61
67
  - app/controllers/workarea/admin/users_controller.decorator
68
+ - app/controllers/workarea/storefront/analytics_controller.decorator
62
69
  - app/controllers/workarea/storefront/users/wish_lists_controller.rb
63
70
  - app/controllers/workarea/storefront/wish_lists_controller.rb
71
+ - app/helpers/workarea/storefront/wish_list_analytics_helper.rb
72
+ - app/models/workarea/insights/most_wish_listed_products.rb
73
+ - app/models/workarea/metrics/product_by_day.decorator
64
74
  - app/models/workarea/wish_list.rb
65
75
  - app/models/workarea/wish_list/item.rb
66
76
  - app/models/workarea/wish_list/pricing.rb
67
77
  - app/models/workarea/wish_list/pricing/calculators/totals_calculator.rb
68
78
  - app/models/workarea/wish_list/public_search.rb
69
79
  - app/models/workarea/wish_list/request.rb
80
+ - app/queries/workarea/order_metrics.decorator
81
+ - app/queries/workarea/reports/wish_list_products.rb
70
82
  - app/seeds/workarea/wish_list_seeds.rb
71
83
  - app/services/workarea/set_wish_list_details.rb
72
84
  - app/services/workarea/wish_list_session.rb
85
+ - app/view_models/workarea/admin/dashboards/reports_view_model.decorator
86
+ - app/view_models/workarea/admin/reports/wish_list_products_view_model.rb
73
87
  - app/view_models/workarea/admin/user_view_model.decorator
74
88
  - app/view_models/workarea/storefront/user_view_model.decorator
75
89
  - app/view_models/workarea/storefront/wish_list_item_view_model.rb
76
90
  - app/view_models/workarea/storefront/wish_list_view_model.rb
77
91
  - app/views/layouts/workarea/storefront/_wish_lists_link.html.haml
92
+ - app/views/workarea/admin/dashboards/_wish_list_products_card.html.haml
93
+ - app/views/workarea/admin/insights/_most_wish_listed_products.html.haml
94
+ - app/views/workarea/admin/reports/wish_list_products.html.haml
78
95
  - app/views/workarea/admin/users/_wish_list_card.html.haml
79
96
  - app/views/workarea/admin/users/_wish_list_item_summary.html.haml
80
97
  - app/views/workarea/admin/users/wish_list.html.haml
81
98
  - app/views/workarea/storefront/carts/_move_to_wish_list.html.haml
99
+ - app/views/workarea/storefront/pages/_wish_lists_robots.text.erb
82
100
  - app/views/workarea/storefront/products/_add_to_wish_list.html.haml
83
101
  - app/views/workarea/storefront/style_guides/_wish_lists_product_list_docs.html.haml
84
102
  - app/views/workarea/storefront/users/accounts/_wish_list_summary.html.haml
@@ -87,6 +105,7 @@ files:
87
105
  - app/views/workarea/storefront/wish_lists/index.html.haml
88
106
  - app/views/workarea/storefront/wish_lists/show.html.haml
89
107
  - app/workers/workarea/mark_wish_list_items_purchased.rb
108
+ - app/workers/workarea/save_order_metrics.decorator
90
109
  - app/workers/workarea/update_wish_list_details.rb
91
110
  - bin/rails
92
111
  - config/initializers/append_points.rb
@@ -97,6 +116,7 @@ files:
97
116
  - lib/workarea/wish_lists.rb
98
117
  - lib/workarea/wish_lists/engine.rb
99
118
  - lib/workarea/wish_lists/version.rb
119
+ - package.json
100
120
  - test/dummy/Rakefile
101
121
  - test/dummy/app/assets/config/manifest.js
102
122
  - test/dummy/app/assets/images/.keep
@@ -150,18 +170,24 @@ files:
150
170
  - test/dummy/public/apple-touch-icon.png
151
171
  - test/dummy/public/favicon.ico
152
172
  - test/integration/workarea/storefront/wish_lists_integration_test.rb
173
+ - test/models/workarea/insights/most_wish_listed_products_test.rb
153
174
  - test/models/workarea/wish_list/public_search_test.rb
154
175
  - test/models/workarea/wish_list_test.rb
176
+ - test/queries/workarea/reports/wish_list_products_test.rb
177
+ - test/queries/workarea/wish_list_order_metrics_test.rb
155
178
  - test/services/workarea/set_wish_list_details_test.rb
156
179
  - test/services/workarea/wish_list_session_test.rb
180
+ - test/system/workarea/admin/wish_list_products_report_system_test.rb
157
181
  - test/system/workarea/admin/wish_lists_system_test.rb
182
+ - test/system/workarea/storefront/wish_list_analytics_system_test.rb
158
183
  - test/system/workarea/storefront/wish_lists_system_test.rb
159
184
  - test/test_helper.rb
185
+ - test/view_models/workarea/storefront/user_view_model_test.rb
160
186
  - test/view_models/workarea/storefront/wish_list_item_view_model_test.rb
161
- - test/view_models/workarea/storefront/wish_list_user_view_model_test.rb
162
187
  - test/view_models/workarea/storefront/wish_list_view_model_test.rb
163
188
  - test/workers/workarea/mark_wish_list_items_purchased_test.rb
164
189
  - workarea-wish_lists.gemspec
190
+ - yarn.lock
165
191
  homepage: https://github.com/workarea-commerce/workarea-wish-lists
166
192
  licenses:
167
193
  - Business Software License
@@ -181,8 +207,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
207
  - !ruby/object:Gem::Version
182
208
  version: '0'
183
209
  requirements: []
184
- rubygems_version: 3.0.3
210
+ rubygems_version: 3.0.6
185
211
  signing_key:
186
212
  specification_version: 4
187
- summary: Wish Lists plugin for the Workarea ecommerce platform
213
+ summary: Wish Lists plugin for the Workarea Commerce Platform
188
214
  test_files: []