Commit 0f741a6c77cc7709cd59c6f2f6f6181ad2c2eefd
1 parent
7b3830d1
Exists in
elasticsearch_filter
and in
1 other branch
Elasticsearch: Adding initial test
Signed-off-by: Arthur Jahn <stutrzbecher@gmail.com> Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
Showing
11 changed files
with
49 additions
and
48 deletions
Show diff stats
plugins/elasticsearch/Gemfile
plugins/elasticsearch/lib/elasticsearch_indexed_model.rb
@@ -2,10 +2,11 @@ module ElasticsearchIndexedModel | @@ -2,10 +2,11 @@ module ElasticsearchIndexedModel | ||
2 | 2 | ||
3 | def self.included base | 3 | def self.included base |
4 | base.send :include, Elasticsearch::Model | 4 | base.send :include, Elasticsearch::Model |
5 | + base.extend ClassMethods | ||
5 | base.class_eval do | 6 | base.class_eval do |
6 | settings index: { number_of_shards: 1 } do | 7 | settings index: { number_of_shards: 1 } do |
7 | mappings dynamic: 'false' do | 8 | mappings dynamic: 'false' do |
8 | - base::SEARCHABLE_FIELDS.each do |field, value| | 9 | + base.indexable_fields.each do |field, value| |
9 | indexes field | 10 | indexes field |
10 | print '.' | 11 | print '.' |
11 | end | 12 | end |
@@ -20,8 +21,7 @@ module ElasticsearchIndexedModel | @@ -20,8 +21,7 @@ module ElasticsearchIndexedModel | ||
20 | } | 21 | } |
21 | end | 22 | end |
22 | end | 23 | end |
23 | - base.extend ClassMethods | ||
24 | - base.send :import | 24 | + base.send :import |
25 | end | 25 | end |
26 | 26 | ||
27 | module ClassMethods | 27 | module ClassMethods |
plugins/elasticsearch/lib/ext/article.rb
plugins/elasticsearch/lib/ext/community.rb
@@ -2,9 +2,8 @@ require_dependency 'community' | @@ -2,9 +2,8 @@ require_dependency 'community' | ||
2 | require_relative '../elasticsearch_indexed_model' | 2 | require_relative '../elasticsearch_indexed_model' |
3 | 3 | ||
4 | class Community | 4 | class Community |
5 | - include ElasticsearchIndexedModel | ||
6 | - | ||
7 | def self.control_fields | 5 | def self.control_fields |
8 | [] | 6 | [] |
9 | end | 7 | end |
8 | + include ElasticsearchIndexedModel | ||
10 | end | 9 | end |
plugins/elasticsearch/lib/ext/event.rb
@@ -2,12 +2,11 @@ require_dependency 'event' | @@ -2,12 +2,11 @@ require_dependency 'event' | ||
2 | require_relative '../elasticsearch_indexed_model' | 2 | require_relative '../elasticsearch_indexed_model' |
3 | 3 | ||
4 | class Event | 4 | class Event |
5 | - include ElasticsearchIndexedModel | ||
6 | - | ||
7 | def self.control_fields | 5 | def self.control_fields |
8 | [ | 6 | [ |
9 | :advertise, | 7 | :advertise, |
10 | :published, | 8 | :published, |
11 | ] | 9 | ] |
12 | end | 10 | end |
11 | + include ElasticsearchIndexedModel | ||
13 | end | 12 | end |
plugins/elasticsearch/lib/ext/person.rb
@@ -2,12 +2,11 @@ require_dependency 'person' | @@ -2,12 +2,11 @@ require_dependency 'person' | ||
2 | require_relative '../elasticsearch_indexed_model' | 2 | require_relative '../elasticsearch_indexed_model' |
3 | 3 | ||
4 | class Person | 4 | class Person |
5 | - include ElasticsearchIndexedModel | ||
6 | - | ||
7 | def self.control_fields | 5 | def self.control_fields |
8 | [ | 6 | [ |
9 | :visible, | 7 | :visible, |
10 | :public_profile, | 8 | :public_profile, |
11 | ] | 9 | ] |
12 | end | 10 | end |
11 | + include ElasticsearchIndexedModel | ||
13 | end | 12 | end |
plugins/elasticsearch/lib/ext/text_article.rb
@@ -2,12 +2,11 @@ require_dependency 'text_article' | @@ -2,12 +2,11 @@ require_dependency 'text_article' | ||
2 | require_relative '../elasticsearch_indexed_model' | 2 | require_relative '../elasticsearch_indexed_model' |
3 | 3 | ||
4 | class TextArticle | 4 | class TextArticle |
5 | - include ElasticsearchIndexedModel | ||
6 | - | ||
7 | def self.control_fields | 5 | def self.control_fields |
8 | [ | 6 | [ |
9 | :advertise, | 7 | :advertise, |
10 | :published, | 8 | :published, |
11 | ] | 9 | ] |
12 | end | 10 | end |
11 | + include ElasticsearchIndexedModel | ||
13 | end | 12 | end |
plugins/elasticsearch/lib/ext/uploaded_file.rb
@@ -2,12 +2,11 @@ require_dependency 'uploaded_file' | @@ -2,12 +2,11 @@ require_dependency 'uploaded_file' | ||
2 | require_relative '../elasticsearch_indexed_model' | 2 | require_relative '../elasticsearch_indexed_model' |
3 | 3 | ||
4 | class UploadedFile | 4 | class UploadedFile |
5 | - include ElasticsearchIndexedModel | ||
6 | - | ||
7 | def self.control_fields | 5 | def self.control_fields |
8 | [ | 6 | [ |
9 | :advertise, | 7 | :advertise, |
10 | :published, | 8 | :published, |
11 | ] | 9 | ] |
12 | end | 10 | end |
11 | + include ElasticsearchIndexedModel | ||
13 | end | 12 | end |
@@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
1 | +require 'test_helper' | ||
2 | + | ||
3 | + | ||
4 | +require 'elasticsearch/extensions/test/cluster' | ||
5 | +require 'elasticsearch/extensions/test/cluster/tasks' | ||
6 | + | ||
7 | + | ||
8 | +def start_cluster | ||
9 | + if not Elasticsearch::Extensions::Test::Cluster.running?(on: 9250) | ||
10 | + Elasticsearch::Extensions::Test::Cluster.start | ||
11 | + end | ||
12 | +end | ||
13 | + | ||
14 | +def stop_cluster | ||
15 | + if Elasticsearch::Extensions::Test::Cluster.running?(on: 9250) | ||
16 | + Elasticsearch::Extensions::Test::Cluster.stop | ||
17 | + end | ||
18 | +end | ||
19 | + | ||
20 | + |
@@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
1 | +require "#{File.dirname(__FILE__)}/../test_helper" | ||
2 | + | ||
3 | +class ElasticsearchTest < ActiveSupport::TestCase | ||
4 | + def setup | ||
5 | + start_cluster | ||
6 | + @environment = Environment.default | ||
7 | + @environment.enable_plugin(ElasticsearchPlugin) | ||
8 | + @profile = create_user('testing').person | ||
9 | + end | ||
10 | + | ||
11 | + def teardown | ||
12 | + stop_cluster | ||
13 | + end | ||
14 | + | ||
15 | + | ||
16 | + should ' be return yellow for health status' do | ||
17 | + cluster = Elasticsearch::Model.client.cluster | ||
18 | + assert_equal 'yellow', cluster.health["status"] | ||
19 | + end | ||
20 | +end |
plugins/elasticsearch/test/unit/index_models_test.rb
@@ -1,21 +0,0 @@ | @@ -1,21 +0,0 @@ | ||
1 | -require 'test_helper' | ||
2 | - | ||
3 | -class IndexModelsTest < ActiveSupport::TestCase | ||
4 | - | ||
5 | - should "check index models on elasticsearch" do | ||
6 | - fields = [] | ||
7 | - mappings = [] | ||
8 | - | ||
9 | - ActiveRecord::Base.descendants.each do |model| | ||
10 | - if model.const_defined?("SEARCHABLE_FIELDS") | ||
11 | - mappings << model.mappings.instance_values['mapping'].keys.sort | ||
12 | - fields << model::SEARCHABLE_FIELDS.keys.sort | ||
13 | - end | ||
14 | - end | ||
15 | - | ||
16 | - mappings.count.times do |i| | ||
17 | - assert_equal mappings[i], fields[i] | ||
18 | - end | ||
19 | - end | ||
20 | - | ||
21 | -end |