workarea-core 3.5.8 → 3.5.13

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/workarea/application_controller.rb +0 -5
  3. data/app/controllers/workarea/authentication.rb +6 -0
  4. data/app/helpers/workarea/i18n_helper.rb +1 -1
  5. data/app/middleware/workarea/application_middleware.rb +18 -0
  6. data/app/models/workarea/bulk_action/product_edit.rb +6 -6
  7. data/app/models/workarea/order.rb +3 -3
  8. data/app/models/workarea/releasable.rb +3 -1
  9. data/app/models/workarea/release/changeset.rb +1 -0
  10. data/app/models/workarea/search/admin/pricing_discount.rb +1 -1
  11. data/app/models/workarea/search/storefront.rb +9 -1
  12. data/app/models/workarea/search/storefront/category_query.rb +2 -2
  13. data/app/models/workarea/search/storefront/product.rb +11 -2
  14. data/app/models/workarea/user/password_reset.rb +3 -1
  15. data/app/queries/workarea/product_releases.rb +6 -0
  16. data/app/queries/workarea/search/pagination.rb +4 -1
  17. data/app/queries/workarea/search/product_entries.rb +7 -5
  18. data/app/queries/workarea/search/storefront_search.rb +1 -1
  19. data/app/services/workarea/direct_upload.rb +17 -13
  20. data/app/services/workarea/hash_update.rb +15 -1
  21. data/app/workers/workarea/bulk_index_admin.rb +1 -1
  22. data/app/workers/workarea/bulk_index_products.rb +3 -2
  23. data/app/workers/workarea/bulk_index_searches.rb +4 -4
  24. data/app/workers/workarea/index_category_changes.rb +16 -3
  25. data/app/workers/workarea/process_import.rb +3 -3
  26. data/app/workers/workarea/reindex_release.rb +42 -0
  27. data/app/workers/workarea/synchronize_user_metrics.rb +12 -2
  28. data/lib/tasks/search.rake +10 -4
  29. data/lib/workarea/cache.rb +1 -1
  30. data/lib/workarea/changelog.rake +1 -1
  31. data/lib/workarea/core.rb +3 -0
  32. data/lib/workarea/elasticsearch/document.rb +15 -8
  33. data/lib/workarea/ext/freedom_patches/i18n_js.rb +27 -0
  34. data/lib/workarea/ext/freedom_patches/mongoid_localized_defaults.rb +25 -0
  35. data/lib/workarea/geolocation.rb +1 -9
  36. data/lib/workarea/queues_pauser.rb +26 -0
  37. data/lib/workarea/version.rb +1 -1
  38. data/lib/workarea/visit.rb +8 -1
  39. data/lib/workarea/warnings.rb +3 -4
  40. data/test/helpers/workarea/i18n_helper_test.rb +2 -0
  41. data/test/integration/workarea/authentication_test.rb +10 -0
  42. data/test/integration/workarea/cache_varies_integration_test.rb +31 -0
  43. data/test/lib/workarea/elasticsearch/document_test.rb +20 -0
  44. data/test/lib/workarea/ext/freedom_patches/mongoid_localized_defaults_test.rb +25 -0
  45. data/test/lib/workarea/geolocation_test.rb +3 -3
  46. data/test/models/workarea/releasable_test.rb +13 -0
  47. data/test/models/workarea/search/storefront/product_releases_test.rb +60 -0
  48. data/test/models/workarea/search/storefront_test.rb +13 -0
  49. data/test/models/workarea/segment/rules/geolocation_test.rb +9 -7
  50. data/test/models/workarea/user/password_reset_test.rb +12 -4
  51. data/test/queries/workarea/search/category_browse_test.rb +23 -0
  52. data/test/queries/workarea/search/pagination_test.rb +9 -0
  53. data/test/queries/workarea/search/product_entries_test.rb +11 -0
  54. data/test/queries/workarea/search/product_search_test.rb +16 -0
  55. data/test/services/workarea/direct_upload_test.rb +20 -3
  56. data/test/services/workarea/hash_update_test.rb +12 -12
  57. data/test/workers/workarea/process_import_test.rb +6 -0
  58. data/test/workers/workarea/reindex_release_test.rb +81 -0
  59. data/workarea-core.gemspec +4 -3
  60. metadata +29 -9
  61. data/test/queries/workarea/product_releases_test.rb +0 -56
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_dependency 'mongoid-sample', '~> 0.1.0'
26
26
  s.add_dependency 'mongoid-encrypted', '~> 1.0.0'
27
27
  s.add_dependency 'elasticsearch', '~> 5.0.1'
28
- s.add_dependency 'kaminari', '~> 0.17.0'
28
+ s.add_dependency 'kaminari', '~> 1.2.1'
29
29
  s.add_dependency 'kaminari-mongoid', '~> 0.1.2'
30
30
  s.add_dependency 'activemerchant', '~> 1.52'
31
31
  s.add_dependency 'dragonfly', '~> 1.1.2'
@@ -33,7 +33,8 @@ Gem::Specification.new do |s|
33
33
  s.add_dependency 'sidekiq-cron', '~> 0.6.3'
34
34
  s.add_dependency 'sidekiq-unique-jobs', '~> 6.0.6'
35
35
  s.add_dependency 'sidekiq-throttled', '~> 0.8.2'
36
- s.add_dependency 'geocoder', '~> 1.4.4'
36
+ s.add_dependency 'geocoder', '~> 1.6.3'
37
+ s.add_dependency 'redis-rails', '~> 5.0.0'
37
38
  s.add_dependency 'redis-rack-cache', '~> 2.2.0'
38
39
  s.add_dependency 'easymon', '~> 1.4.0'
39
40
  s.add_dependency 'image_optim', '~> 0.26.0'
@@ -65,7 +66,7 @@ Gem::Specification.new do |s|
65
66
  s.add_dependency 'chart-horizontalbar-rails', '~> 1.0.4' # TODO remove v4
66
67
  s.add_dependency 'select2-rails', '~> 4.0.3'
67
68
  s.add_dependency 'wysihtml-rails', '~> 0.6.0.beta2'
68
- s.add_dependency 'rack-attack', '~> 5.0.1'
69
+ s.add_dependency 'rack-attack', '~> 6.3.1'
69
70
  s.add_dependency 'jquery-livetype-rails', '~> 0.1.0' # TODO remove v4
70
71
  s.add_dependency 'redcarpet', '~> 3.4.0'
71
72
  s.add_dependency 'jquery-unique-clone-rails', '~> 1.0.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workarea-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.8
4
+ version: 3.5.13
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-31 00:00:00.000000000 Z
11
+ date: 2020-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 0.17.0
173
+ version: 1.2.1
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 0.17.0
180
+ version: 1.2.1
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: kaminari-mongoid
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -282,14 +282,28 @@ dependencies:
282
282
  requirements:
283
283
  - - "~>"
284
284
  - !ruby/object:Gem::Version
285
- version: 1.4.4
285
+ version: 1.6.3
286
286
  type: :runtime
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
290
  - - "~>"
291
291
  - !ruby/object:Gem::Version
292
- version: 1.4.4
292
+ version: 1.6.3
293
+ - !ruby/object:Gem::Dependency
294
+ name: redis-rails
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - "~>"
298
+ - !ruby/object:Gem::Version
299
+ version: 5.0.0
300
+ type: :runtime
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - "~>"
305
+ - !ruby/object:Gem::Version
306
+ version: 5.0.0
293
307
  - !ruby/object:Gem::Dependency
294
308
  name: redis-rack-cache
295
309
  requirement: !ruby/object:Gem::Requirement
@@ -730,14 +744,14 @@ dependencies:
730
744
  requirements:
731
745
  - - "~>"
732
746
  - !ruby/object:Gem::Version
733
- version: 5.0.1
747
+ version: 6.3.1
734
748
  type: :runtime
735
749
  prerelease: false
736
750
  version_requirements: !ruby/object:Gem::Requirement
737
751
  requirements:
738
752
  - - "~>"
739
753
  - !ruby/object:Gem::Version
740
- version: 5.0.1
754
+ version: 6.3.1
741
755
  - !ruby/object:Gem::Dependency
742
756
  name: jquery-livetype-rails
743
757
  requirement: !ruby/object:Gem::Requirement
@@ -1771,6 +1785,7 @@ files:
1771
1785
  - app/workers/workarea/publish_bulk_action.rb
1772
1786
  - app/workers/workarea/publish_release.rb
1773
1787
  - app/workers/workarea/redirect_navigable_slugs.rb
1788
+ - app/workers/workarea/reindex_release.rb
1774
1789
  - app/workers/workarea/save_metrics.rb
1775
1790
  - app/workers/workarea/save_order_cancellation_metrics.rb
1776
1791
  - app/workers/workarea/save_order_metrics.rb
@@ -1919,7 +1934,9 @@ files:
1919
1934
  - lib/workarea/ext/freedom_patches/dragonfly_job_fetch_url.rb
1920
1935
  - lib/workarea/ext/freedom_patches/float.rb
1921
1936
  - lib/workarea/ext/freedom_patches/global_id.rb
1937
+ - lib/workarea/ext/freedom_patches/i18n_js.rb
1922
1938
  - lib/workarea/ext/freedom_patches/money.rb
1939
+ - lib/workarea/ext/freedom_patches/mongoid_localized_defaults.rb
1923
1940
  - lib/workarea/ext/freedom_patches/mongoid_simple_tags.rb
1924
1941
  - lib/workarea/ext/freedom_patches/net_http_ssl_connection.rb
1925
1942
  - lib/workarea/ext/freedom_patches/premailer.rb
@@ -1962,6 +1979,7 @@ files:
1962
1979
  - lib/workarea/ping_home_base.rb
1963
1980
  - lib/workarea/plugin.rb
1964
1981
  - lib/workarea/plugin/asset_appends_helper.rb
1982
+ - lib/workarea/queues_pauser.rb
1965
1983
  - lib/workarea/routes_constraints/redirect.rb
1966
1984
  - lib/workarea/routes_constraints/super_admin.rb
1967
1985
  - lib/workarea/scheduled_jobs.rb
@@ -2081,6 +2099,7 @@ files:
2081
2099
  - test/lib/workarea/ext/freedom_patches/dragonfly_callable_url_host_test.rb
2082
2100
  - test/lib/workarea/ext/freedom_patches/global_id_test.rb
2083
2101
  - test/lib/workarea/ext/freedom_patches/money_test.rb
2102
+ - test/lib/workarea/ext/freedom_patches/mongoid_localized_defaults_test.rb
2084
2103
  - test/lib/workarea/ext/freedom_patches/mongoid_simple_tags_test.rb
2085
2104
  - test/lib/workarea/ext/mongoid/audit_log_entry_test.rb
2086
2105
  - test/lib/workarea/ext/mongoid/each_by_test.rb
@@ -2311,6 +2330,7 @@ files:
2311
2330
  - test/models/workarea/search/storefront/product/inventory_test.rb
2312
2331
  - test/models/workarea/search/storefront/product/pricing_test.rb
2313
2332
  - test/models/workarea/search/storefront/product/text_test.rb
2333
+ - test/models/workarea/search/storefront/product_releases_test.rb
2314
2334
  - test/models/workarea/search/storefront/product_test.rb
2315
2335
  - test/models/workarea/search/storefront_test.rb
2316
2336
  - test/models/workarea/segment/life_cycle_test.rb
@@ -2362,7 +2382,6 @@ files:
2362
2382
  - test/queries/workarea/pricing_override_params_test.rb
2363
2383
  - test/queries/workarea/product_primary_image_url_test.rb
2364
2384
  - test/queries/workarea/product_primary_navigation_test.rb
2365
- - test/queries/workarea/product_releases_test.rb
2366
2385
  - test/queries/workarea/recommendation/order_based_test.rb
2367
2386
  - test/queries/workarea/recommendation/product_based_test.rb
2368
2387
  - test/queries/workarea/recommendation/searches_test.rb
@@ -2465,6 +2484,7 @@ files:
2465
2484
  - test/workers/workarea/publish_bulk_action_test.rb
2466
2485
  - test/workers/workarea/publish_release_test.rb
2467
2486
  - test/workers/workarea/redirect_navigable_slugs_test.rb
2487
+ - test/workers/workarea/reindex_release_test.rb
2468
2488
  - test/workers/workarea/save_order_metrics_test.rb
2469
2489
  - test/workers/workarea/save_user_order_details_test.rb
2470
2490
  - test/workers/workarea/send_refund_email_test.rb
@@ -1,56 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Workarea
4
- class ProductReleasesTest < TestCase
5
- def test_product_changes
6
- product = create_product(name: 'Foo')
7
- release_one = create_release
8
- release_one.as_current { product.update!(name: 'Bar') }
9
-
10
- assert_equal([release_one], ProductReleases.new(product).releases)
11
-
12
- release_one.update!(publish_at: 1.day.from_now)
13
- release_two = create_release(publish_at: 3.days.from_now)
14
- assert_equal([release_one, release_two], ProductReleases.new(product).releases)
15
- end
16
-
17
- def test_featured_product_changes
18
- product = create_product
19
- category = create_category
20
-
21
- release_one = create_release
22
- release_one.as_current { category.update!(product_ids: [product.id]) }
23
- assert_equal([release_one], ProductReleases.new(product).releases)
24
-
25
- release_one.update!(publish_at: 1.day.from_now)
26
- release_two = create_release(publish_at: 3.days.from_now)
27
- assert_equal([release_one, release_two], ProductReleases.new(product).releases)
28
- end
29
-
30
- def test_variant_changes
31
- product = create_product(variants: [{ sku: 'SKU' }])
32
- release = create_release
33
- release.as_current { product.variants.first.update!(details: { color: 'Red' }) }
34
- assert_equal([release], ProductReleases.new(product).releases)
35
- end
36
-
37
- def test_pricing_changes
38
- product = create_product(variants: [{ sku: 'SKU' }])
39
- pricing = Pricing::Sku.find('SKU')
40
-
41
- release = create_release
42
- release.as_current { pricing.prices.first.update!(regular: 10_000) }
43
- assert_equal([release], ProductReleases.new(product).releases)
44
- end
45
-
46
- def test_changesets_with_missing_releases
47
- product = create_product(name: 'Foo')
48
- release = create_release
49
- release.as_current { product.update!(name: 'Bar') }
50
- release.delete
51
-
52
- assert_nil(product.reload.changesets.first.release)
53
- assert_equal([], ProductReleases.new(product).releases)
54
- end
55
- end
56
- end