@@ -11,6 +11,7 @@ class ActiveRecordBasicIntegrationTest < Elasticsearch::Test::IntegrationTestCas
11
11
ActiveRecord ::Schema . define ( :version => 1 ) do
12
12
create_table :articles do |t |
13
13
t . string :title
14
+ t . string :body
14
15
t . datetime :created_at , :default => 'NOW()'
15
16
end
16
17
end
@@ -22,6 +23,7 @@ class ::Article < ActiveRecord::Base
22
23
settings index : { number_of_shards : 1 , number_of_replicas : 0 } do
23
24
mapping do
24
25
indexes :title , type : 'string' , analyzer : 'snowball'
26
+ indexes :body , type : 'string'
25
27
indexes :created_at , type : 'date'
26
28
end
27
29
end
@@ -30,9 +32,9 @@ class ::Article < ActiveRecord::Base
30
32
Article . delete_all
31
33
Article . __elasticsearch__ . create_index! force : true
32
34
33
- ::Article . create! title : 'Test'
34
- ::Article . create! title : 'Testing Coding'
35
- ::Article . create! title : 'Coding'
35
+ ::Article . create! title : 'Test' , body : ''
36
+ ::Article . create! title : 'Testing Coding' , body : ''
37
+ ::Article . create! title : 'Coding' , body : ''
36
38
37
39
Article . __elasticsearch__ . refresh_index!
38
40
end
@@ -146,6 +148,29 @@ class ::Article < ActiveRecord::Base
146
148
assert_equal 1 , response . records . size
147
149
end
148
150
151
+ should "update document when save is called multiple times in a transaction" do
152
+ article = Article . first
153
+ response = Article . search 'body:dummy'
154
+
155
+ assert_equal 0 , response . results . size
156
+ assert_equal 0 , response . records . size
157
+
158
+ ActiveRecord ::Base . transaction do
159
+ article . body = 'dummy'
160
+ article . save
161
+
162
+ article . title = 'special'
163
+ article . save
164
+ end
165
+
166
+ article . __elasticsearch__ . update_document
167
+ Article . __elasticsearch__ . refresh_index!
168
+
169
+ response = Article . search 'body:dummy'
170
+ assert_equal 1 , response . results . size
171
+ assert_equal 1 , response . records . size
172
+ end
173
+
149
174
should "return results for a DSL search" do
150
175
response = Article . search query : { match : { title : { query : 'test' } } }
151
176
0 commit comments