workarea-core 3.5.7 → 3.5.8

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: 26dc982f98d5ae00a8d3299b322cd6eb897329888c169a7a035e0bafad3be1e8
4
- data.tar.gz: f3b5ae6b3bddb68b0e3d5b5c303e565e69ff812e165371e35285cd3ce04d334e
3
+ metadata.gz: 1c2fa2d437187cdfa6f9630002c94d5822cc51f5befb62060e6fd219203d4285
4
+ data.tar.gz: 2a9bb9faea3d1d1ed34cbf48938fcee9d1d2673ebcd3acf1cc976fda0370acd5
5
5
  SHA512:
6
- metadata.gz: 31ad3ba0206fb6c815e6af2d4af9b572dbefec26460adfa14191279f9bd8098c462eb21b61139a0003ba775ae0b6e65294745b312ba776cd44cb55931221d40f
7
- data.tar.gz: 8ffe28be251fddeba16e2f4964ca716ea8f759d171154529414e3b826accc1a709acb15f0374916d4ff2260f64c21acdd1a44b71687bb93fadec4bc626e81e11
6
+ metadata.gz: 71f63a2c7b0d0824a173279e01c17ddcc10ea4ef7fb2a232874cd54198a867b5fb6cc3735673d7fe41223f1815e28fdc3794d820d25a74eea03d7f381b4e47eb
7
+ data.tar.gz: fc5503c7cb0ee41b481c04cf3682b002e019e095c4a6a1e27c9279a40c78012c3712312e82e5c8c2878c5be680aca7137acb9d706af71bf6cf95c54c4112ec52
@@ -18,7 +18,17 @@ module Workarea
18
18
  aggs: {
19
19
  type: {
20
20
  terms: { field: 'facets.type', size: Workarea.config.jump_to_type_limit },
21
- aggs: { top: { top_hits: { size: Workarea.config.jump_to_results_per_type } } }
21
+ aggs: {
22
+ top: {
23
+ top_hits: {
24
+ size: Workarea.config.jump_to_results_per_type,
25
+ sort: [
26
+ { _score: { order: 'desc' } },
27
+ { updated_at: { order: 'desc' } }
28
+ ]
29
+ }
30
+ }
31
+ }
22
32
  }
23
33
  }
24
34
  }
@@ -78,6 +78,10 @@ module Workarea
78
78
  nil
79
79
  end
80
80
 
81
+ def changesets
82
+ @changesets ||= Array.wrap(model.try(:changesets_with_children))
83
+ end
84
+
81
85
  def as_document
82
86
  Release.with_current(release_id) do
83
87
  {
@@ -87,7 +91,7 @@ module Workarea
87
91
  active: active,
88
92
  active_segment_ids: active_segment_ids,
89
93
  release_id: release_id,
90
- changeset_release_ids: Array.wrap(model.try(:changesets)).map(&:release_id),
94
+ changeset_release_ids: changesets.map(&:release_id),
91
95
  suggestion_content: suggestion_content,
92
96
  created_at: model.created_at,
93
97
  updated_at: model.updated_at,
@@ -122,6 +122,14 @@ module Workarea
122
122
  ProductPrimaryImageUrl.new(model).path
123
123
  end
124
124
 
125
+ # Override to include release changesets for pricing, featured products, etc.
126
+ #
127
+ # @return [Mongoid::Criteria]
128
+ #
129
+ def changesets
130
+ @product_changesets ||= ProductReleases.new(model).changesets
131
+ end
132
+
125
133
  private
126
134
 
127
135
  def clean_for_keywords(value)
@@ -3,7 +3,8 @@
3
3
  #
4
4
  Easymon::Repository.add(
5
5
  'mongodb',
6
- Workarea::Monitoring::MongoidCheck.new
6
+ Workarea::Monitoring::MongoidCheck.new,
7
+ :critical
7
8
  )
8
9
 
9
10
  #
@@ -11,7 +12,8 @@ Easymon::Repository.add(
11
12
  #
12
13
  Easymon::Repository.add(
13
14
  'elasticsearch',
14
- Workarea::Monitoring::ElasticsearchCheck.new
15
+ Workarea::Monitoring::ElasticsearchCheck.new,
16
+ :critical
15
17
  )
16
18
 
17
19
  #
@@ -21,7 +23,8 @@ Easymon::Repository.add(
21
23
  "redis",
22
24
  Easymon::RedisCheck.new(
23
25
  Workarea::Configuration::Redis.persistent.to_h
24
- )
26
+ ),
27
+ :critical
25
28
  )
26
29
 
27
30
  #
@@ -72,6 +72,13 @@ module Workarea
72
72
  Workarea::Warnings.check
73
73
  Configuration::Session.validate!
74
74
  end
75
+
76
+ config.to_prepare do
77
+ # For some reason, app/workers/workarea/bulk_index_products.rb doesn't
78
+ # get autoloaded. Without this, admin actions like updating product
79
+ # attributes raises a {NameError} "uninitialized constant BulkIndexProducts".
80
+ require_dependency 'workarea/bulk_index_products'
81
+ end
75
82
  end
76
83
  end
77
84
  end
@@ -2,7 +2,7 @@ module Workarea
2
2
  module VERSION
3
3
  MAJOR = 3
4
4
  MINOR = 5
5
- PATCH = 7
5
+ PATCH = 8
6
6
  PRE = nil
7
7
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
8
8
 
@@ -3,27 +3,32 @@ require 'test_helper'
3
3
  module Workarea
4
4
  class MonitoringIntegrationTest < Workarea::IntegrationTest
5
5
  def test_monitors_the_mongodb_status
6
- get workarea.easymon_path('mongodb')
6
+ get workarea.easymon_path + '/mongodb'
7
7
  assert_includes(response.body, 'Up')
8
8
  end
9
9
 
10
10
  def test_monitors_the_redis_status
11
- get workarea.easymon_path('redis')
11
+ get workarea.easymon_path + '/redis'
12
12
  assert_includes(response.body, 'Up')
13
13
  end
14
14
 
15
15
  def test_monitors_the_elasticsearch_status
16
- get workarea.easymon_path('elasticsearch')
16
+ get workarea.easymon_path + '/elasticsearch'
17
17
  assert_includes(response.body, 'Up')
18
18
  end
19
19
 
20
20
  def test_monitors_the_sidekiq_queue_status
21
- get workarea.easymon_path('sidekiq-queue')
21
+ get workarea.easymon_path + '/sidekiq-queue'
22
22
  assert_includes(response.body, 'Low')
23
23
  end
24
24
 
25
25
  def test_monitors_for_load_balancing
26
- get workarea.easymon_path('load-balancing')
26
+ get workarea.easymon_path + '/load-balancing'
27
+ assert_includes(response.body, 'Up')
28
+ end
29
+
30
+ def test_critical_endpoint
31
+ get workarea.easymon_path + "/critical"
27
32
  assert_includes(response.body, 'Up')
28
33
  end
29
34
  end
@@ -10,6 +10,21 @@ module Workarea
10
10
  model.update!(active: true)
11
11
  assert(Storefront.new(model).active[:now])
12
12
  end
13
+
14
+ def test_changesets
15
+ category = create_category(
16
+ name: 'Foo',
17
+ product_rules: [{ name: 'search', operator: 'equals', value: 'foo' }]
18
+ )
19
+ assert_empty(Storefront.new(category).changesets)
20
+
21
+ release = create_release
22
+ release.as_current { category.update!(name: 'Bar') }
23
+ assert_equal(1, Storefront.new(category).changesets.size)
24
+
25
+ release.as_current { category.product_rules.first.update!(value: 'bar') }
26
+ assert_equal(2, Storefront.new(category).changesets.size)
27
+ end
13
28
  end
14
29
  end
15
30
  end
@@ -410,6 +410,21 @@ module Workarea
410
410
  assert(result[:raw].present?)
411
411
  assert_kind_of(Float, result[:raw]['_score'])
412
412
  end
413
+
414
+ def test_previewing_releases
415
+ product = create_product(id: 'foo', variants: [{ sku: '1234', regular: 5 }])
416
+ pricing = Pricing::Sku.find('1234')
417
+ assert_equal([product], ProductSearch.new(q: '*').results.pluck(:model))
418
+
419
+ release = create_release
420
+ release.as_current { pricing.prices.first.update!(regular: 10) }
421
+ IndexProduct.perform(product.reload)
422
+
423
+ assert_equal([product], ProductSearch.new(q: '*').results.pluck(:model))
424
+ release.as_current do
425
+ assert_equal([product], ProductSearch.new(q: '*').results.pluck(:model))
426
+ end
427
+ end
413
428
  end
414
429
  end
415
430
  end
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.7
4
+ version: 3.5.8
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-17 00:00:00.000000000 Z
11
+ date: 2020-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -2718,7 +2718,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2718
2718
  - !ruby/object:Gem::Version
2719
2719
  version: '0'
2720
2720
  requirements: []
2721
- rubygems_version: 3.0.6
2721
+ rubygems_version: 3.0.3
2722
2722
  signing_key:
2723
2723
  specification_version: 4
2724
2724
  summary: Core of the Workarea Commerce Platform