elasticsearch 7.17.11 → 8.0.0.pre1

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.
@@ -0,0 +1,167 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ require 'spec_helper'
19
+
20
+ describe Elasticsearch::Client do
21
+ context 'when cloud credentials are provided' do
22
+ let(:client) do
23
+ described_class.new(
24
+ cloud_id: 'name:bG9jYWxob3N0JGFiY2QkZWZnaA==',
25
+ user: 'elastic',
26
+ password: 'changeme'
27
+ )
28
+ end
29
+
30
+ let(:hosts) do
31
+ client.transport.hosts
32
+ end
33
+
34
+ it 'extracts the cloud credentials' do
35
+ expect(hosts[0][:host]).to eq('abcd.localhost')
36
+ expect(hosts[0][:protocol]).to eq('https')
37
+ expect(hosts[0][:user]).to eq('elastic')
38
+ expect(hosts[0][:password]).to eq('changeme')
39
+ expect(hosts[0][:port]).to eq(443)
40
+ end
41
+
42
+ it 'creates the correct full url' do
43
+ expect(
44
+ client.transport.__full_url(client.transport.hosts[0])
45
+ ).to eq('https://elastic:changeme@abcd.localhost:443')
46
+ end
47
+
48
+ context 'when a port is specified' do
49
+ let(:client) do
50
+ described_class.new(cloud_id: 'name:bG9jYWxob3N0JGFiY2QkZWZnaA==', user: 'elastic', password: 'changeme', port: 9250)
51
+ end
52
+
53
+ it 'sets the specified port along with the cloud credentials' do
54
+ expect(hosts[0][:host]).to eq('abcd.localhost')
55
+ expect(hosts[0][:protocol]).to eq('https')
56
+ expect(hosts[0][:user]).to eq('elastic')
57
+ expect(hosts[0][:password]).to eq('changeme')
58
+ expect(hosts[0][:port]).to eq(9250)
59
+ end
60
+
61
+ it 'creates the correct full url' do
62
+ expect(client.transport.__full_url(client.transport.hosts[0])).to eq('https://elastic:changeme@abcd.localhost:9250')
63
+ end
64
+ end
65
+
66
+ context 'when the cluster has alternate names' do
67
+ let(:client) do
68
+ described_class.new(
69
+ cloud_id: 'myCluster:bG9jYWxob3N0JGFiY2QkZWZnaA==',
70
+ user: 'elasticfantastic',
71
+ password: 'tobechanged'
72
+ )
73
+ end
74
+
75
+ let(:hosts) do
76
+ client.transport.hosts
77
+ end
78
+
79
+ it 'extracts the cloud credentials' do
80
+ expect(hosts[0][:host]).to eq('abcd.localhost')
81
+ expect(hosts[0][:protocol]).to eq('https')
82
+ expect(hosts[0][:user]).to eq('elasticfantastic')
83
+ expect(hosts[0][:password]).to eq('tobechanged')
84
+ expect(hosts[0][:port]).to eq(443)
85
+ end
86
+
87
+ it 'creates the correct full url' do
88
+ expect(
89
+ client.transport.__full_url(client.transport.hosts[0])
90
+ ).to eq('https://elasticfantastic:tobechanged@abcd.localhost:443')
91
+ end
92
+ end
93
+
94
+ context 'when decoded cloud id has a trailing dollar sign' do
95
+ let(:client) do
96
+ described_class.new(
97
+ cloud_id: 'a_cluster:bG9jYWxob3N0JGFiY2Qk',
98
+ user: 'elasticfantastic',
99
+ password: 'changeme'
100
+ )
101
+ end
102
+
103
+ let(:hosts) do
104
+ client.transport.hosts
105
+ end
106
+
107
+ it 'extracts the cloud credentials' do
108
+ expect(hosts[0][:host]).to eq('abcd.localhost')
109
+ expect(hosts[0][:protocol]).to eq('https')
110
+ expect(hosts[0][:user]).to eq('elasticfantastic')
111
+ expect(hosts[0][:password]).to eq('changeme')
112
+ expect(hosts[0][:port]).to eq(443)
113
+ end
114
+
115
+ it 'creates the correct full url' do
116
+ expect(
117
+ client.transport.__full_url(client.transport.hosts[0])
118
+ ).to eq('https://elasticfantastic:changeme@abcd.localhost:443')
119
+ end
120
+ end
121
+
122
+ context 'when the cloud host provides a port' do
123
+ let(:client) do
124
+ described_class.new(
125
+ cloud_id: 'name:ZWxhc3RpY19zZXJ2ZXI6OTI0MyRlbGFzdGljX2lk',
126
+ user: 'elastic',
127
+ password: 'changeme'
128
+ )
129
+ end
130
+
131
+ let(:hosts) do
132
+ client.transport.hosts
133
+ end
134
+
135
+ it 'creates the correct full url' do
136
+ expect(hosts[0][:host]).to eq('elastic_id.elastic_server')
137
+ expect(hosts[0][:protocol]).to eq('https')
138
+ expect(hosts[0][:user]).to eq('elastic')
139
+ expect(hosts[0][:password]).to eq('changeme')
140
+ expect(hosts[0][:port]).to eq(9243)
141
+ end
142
+ end
143
+
144
+ context 'when the cloud host provides a port and the port is also specified' do
145
+ let(:client) do
146
+ described_class.new(
147
+ cloud_id: 'name:ZWxhc3RpY19zZXJ2ZXI6OTI0MyRlbGFzdGljX2lk',
148
+ user: 'elastic',
149
+ password: 'changeme',
150
+ port: 9200
151
+ )
152
+ end
153
+
154
+ let(:hosts) do
155
+ client.transport.hosts
156
+ end
157
+
158
+ it 'creates the correct full url' do
159
+ expect(hosts[0][:host]).to eq('elastic_id.elastic_server')
160
+ expect(hosts[0][:protocol]).to eq('https')
161
+ expect(hosts[0][:user]).to eq('elastic')
162
+ expect(hosts[0][:password]).to eq('changeme')
163
+ expect(hosts[0][:port]).to eq(9243)
164
+ end
165
+ end
166
+ end
167
+ end
@@ -0,0 +1,43 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ require 'spec_helper'
18
+
19
+ describe Elasticsearch::Client do
20
+ context 'when using custom transport implementation' do
21
+ class MyTransport
22
+ include Elastic::Transport::Transport::Base
23
+ def initialize(args); end
24
+ end
25
+ let(:client) { Elasticsearch::Client.new(transport_class: MyTransport) }
26
+ let(:arguments) { client.instance_variable_get('@transport').instance_variable_get('@arguments') }
27
+ let(:subject) do
28
+ arguments[:transport_options][:headers]
29
+ end
30
+
31
+ let(:meta_header) do
32
+ if jruby?
33
+ "es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elastic::Transport::VERSION},jv=#{ENV_JAVA['java.version']},jr=#{JRUBY_VERSION}"
34
+ else
35
+ "es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elastic::Transport::VERSION}"
36
+ end
37
+ end
38
+
39
+ it 'doesnae set any info about the implementation in the metaheader' do
40
+ expect(subject).to include('x-elastic-client-meta' => meta_header)
41
+ end
42
+ end
43
+ end
@@ -25,20 +25,20 @@ describe 'Elasticsearch: Validation' do
25
25
  .to_return(status: status, body: body, headers: headers)
26
26
  end
27
27
  let(:count_request_stub) do
28
- stub_request(:get, "#{host}/_count")
28
+ stub_request(:post, "#{host}/_count")
29
29
  .to_return(status: 200, body: nil, headers: {})
30
30
  end
31
31
  let(:status) { 200 }
32
32
  let(:body) { {}.to_json }
33
33
  let(:client) { Elasticsearch::Client.new }
34
34
  let(:headers) do
35
- { 'content-type' => 'json' }
35
+ { 'content-type' => 'application/json' }
36
36
  end
37
37
 
38
38
  def error_requests_and_expectations(message = Elasticsearch::NOT_ELASTICSEARCH_WARNING)
39
39
  expect { client.count }.to raise_error Elasticsearch::UnsupportedProductError, message
40
40
  assert_requested :get, host
41
- assert_not_requested :get, "#{host}/_count"
41
+ assert_not_requested :post, "#{host}/_count"
42
42
  expect { client.cluster.health }.to raise_error Elasticsearch::UnsupportedProductError, message
43
43
  expect(client.instance_variable_get('@verified')).to be false
44
44
  expect { client.cluster.health }.to raise_error Elasticsearch::UnsupportedProductError, message
@@ -51,7 +51,7 @@ describe 'Elasticsearch: Validation' do
51
51
  client.count
52
52
  expect(client.instance_variable_get('@verified'))
53
53
  assert_requested :get, host
54
- assert_requested :get, "#{host}/_count"
54
+ assert_requested :post, "#{host}/_count"
55
55
  end
56
56
 
57
57
  context 'When Elasticsearch replies with status 401' do
@@ -96,30 +96,9 @@ describe 'Elasticsearch: Validation' do
96
96
  end
97
97
  end
98
98
 
99
- context 'When Elasticsearch replies with status 403' do
100
- let(:status) { 413 }
101
- let(:body) { {}.to_json }
102
-
103
- it 'Verifies the request but shows a warning' do
104
- stderr = $stderr
105
- fake_stderr = StringIO.new
106
- $stderr = fake_stderr
107
-
108
- verify_request_stub
109
- count_request_stub
110
-
111
- valid_requests_and_expectations
112
-
113
- fake_stderr.rewind
114
- expect(fake_stderr.string).to eq("#{Elasticsearch::SECURITY_PRIVILEGES_VALIDATION_WARNING}\n")
115
- ensure
116
- $stderr = stderr
117
- end
118
- end
119
-
120
- context 'When the Elasticsearch version is >= 7.14' do
99
+ context 'When the Elasticsearch version is >= 8.0.0' do
121
100
  context 'With a valid Elasticsearch response' do
122
- let(:body) { { 'version' => { 'number' => '7.14.0' } }.to_json }
101
+ let(:body) { { 'version' => { 'number' => '8.0.0' } }.to_json }
123
102
  let(:headers) do
124
103
  {
125
104
  'X-Elastic-Product' => 'Elasticsearch',
@@ -147,9 +126,9 @@ describe 'Elasticsearch: Validation' do
147
126
  end
148
127
  end
149
128
 
150
- context 'When the Elasticsearch version is >= 7.14-SNAPSHOT' do
129
+ context 'When the Elasticsearch version is >= 8.1.0' do
151
130
  context 'With a valid Elasticsearch response' do
152
- let(:body) { { 'version' => { 'number' => '7.14-SNAPSHOT' } }.to_json }
131
+ let(:body) { { 'version' => { 'number' => '8.1.0' } }.to_json }
153
132
  let(:headers) do
154
133
  {
155
134
  'X-Elastic-Product' => 'Elasticsearch',
@@ -177,15 +156,17 @@ describe 'Elasticsearch: Validation' do
177
156
  end
178
157
  end
179
158
 
180
- context 'When the Elasticsearch version is >= 7.15-SNAPSHOT' do
159
+
160
+ context 'When the Elasticsearch version is 8.0.0.pre' do
181
161
  context 'With a valid Elasticsearch response' do
182
- let(:body) { { 'version' => { 'number' => '7.15-SNAPSHOT' } }.to_json }
162
+ let(:body) { { 'version' => { 'number' => '8.0.0.pre' } }.to_json }
183
163
  let(:headers) do
184
164
  {
185
165
  'X-Elastic-Product' => 'Elasticsearch',
186
166
  'content-type' => 'json'
187
167
  }
188
168
  end
169
+
189
170
  it 'Makes requests and passes validation' do
190
171
  verify_request_stub
191
172
  count_request_stub
@@ -206,8 +187,8 @@ describe 'Elasticsearch: Validation' do
206
187
  end
207
188
  end
208
189
 
209
- context 'When the version is 7.x-SNAPSHOT' do
210
- let(:body) { { 'version' => { 'number' => '7.x-SNAPSHOT' } }.to_json }
190
+ context 'When the version is 8.0.0-SNAPSHOT' do
191
+ let(:body) { { 'version' => { 'number' => '8.0.0-SNAPSHOT' } }.to_json }
211
192
 
212
193
  context 'When the header is not present' do
213
194
  it 'Fails validation' do
@@ -235,77 +216,8 @@ describe 'Elasticsearch: Validation' do
235
216
  end
236
217
  end
237
218
 
238
- context 'When Elasticsearch version is 7.4.0' do
239
- context 'When tagline is not present' do
240
- let(:body) { { 'version' => { 'number' => '7.4.0', 'build_flavor' => 'default' } }.to_json }
241
-
242
- it 'Fails validation' do
243
- verify_request_stub
244
- count_request_stub
245
-
246
- error_requests_and_expectations
247
- end
248
- end
249
-
250
- context 'When build flavor is not present' do
251
- let(:body) do
252
- {
253
- 'version' => {
254
- 'number' => '7.4.0'
255
- },
256
- 'tagline' => Elasticsearch::YOU_KNOW_FOR_SEARCH
257
- }.to_json
258
- end
259
-
260
- it 'Fails validation' do
261
- verify_request_stub
262
- count_request_stub
263
-
264
- error_requests_and_expectations(Elasticsearch::NOT_SUPPORTED_ELASTICSEARCH_WARNING)
265
- end
266
- end
267
-
268
- context 'When the tagline is different' do
269
- let(:body) do
270
- {
271
- 'version' => {
272
- 'number' => '7.4.0',
273
- 'build_flavor' => 'default'
274
- },
275
- 'tagline' => 'You Know, for other stuff'
276
- }.to_json
277
- end
278
-
279
- it 'Fails validation' do
280
- verify_request_stub
281
- count_request_stub
282
-
283
- error_requests_and_expectations
284
- end
285
- end
286
-
287
- context 'With a valid Elasticsearch response' do
288
- let(:body) do
289
- {
290
- 'version' => {
291
- 'number' => '7.4.0',
292
- 'build_flavor' => 'default'
293
- },
294
- 'tagline' => 'You Know, for Search'
295
- }.to_json
296
- end
297
-
298
- it 'Makes requests and passes validation' do
299
- verify_request_stub
300
- count_request_stub
301
-
302
- valid_requests_and_expectations
303
- end
304
- end
305
- end
306
-
307
- context 'When Elasticsearch version is < 6.0.0' do
308
- let(:body) { { 'version' => { 'number' => '5.0.0' } }.to_json }
219
+ context 'When Elasticsearch version is < 8.0.0' do
220
+ let(:body) { { 'version' => { 'number' => '7.16.0' } }.to_json }
309
221
 
310
222
  it 'Raises an exception and client doesnae work' do
311
223
  verify_request_stub
@@ -321,141 +233,13 @@ describe 'Elasticsearch: Validation' do
321
233
  end
322
234
  end
323
235
 
324
- context 'When Elasticsearch version is between 6.0.0 and 7.0.0' do
325
- context 'With an Elasticsearch valid response' do
326
- let(:body) do
327
- {
328
- 'version' => {
329
- 'number' => '6.8.10'
330
- },
331
- 'tagline' => 'You Know, for Search'
332
- }.to_json
333
- end
334
-
335
- it 'Makes requests and passes validation' do
336
- verify_request_stub
337
- count_request_stub
338
-
339
- valid_requests_and_expectations
340
- end
341
- end
342
-
343
- context 'With no tagline' do
344
- let(:body) do
345
- { 'version' => { 'number' => '6.8.10' } }.to_json
346
- end
347
-
348
- it 'Fails validation' do
349
- verify_request_stub
350
- count_request_stub
351
-
352
- error_requests_and_expectations
353
- end
354
- end
355
-
356
- context 'When the tagline is different' do
357
- let(:body) do
358
- {
359
- 'version' => {
360
- 'number' => '6.8.10',
361
- 'build_flavor' => 'default'
362
- },
363
- 'tagline' => 'You Know, for Stuff'
364
- }.to_json
365
- end
366
-
367
- it 'Fails validation' do
368
- verify_request_stub
369
- count_request_stub
370
-
371
- error_requests_and_expectations
372
- end
373
- end
374
- end
375
-
376
- context 'When Elasticsearch version is between 7.0.0 and 7.14.0' do
377
- context 'With a valid Elasticsearch response' do
378
- let(:body) do
379
- {
380
- 'version' => {
381
- 'number' => '7.10.0',
382
- 'build_flavor' => 'default'
383
- },
384
- 'tagline' => 'You Know, for Search'
385
- }.to_json
386
- end
387
-
388
- it 'Makes requests and passes validation' do
389
- verify_request_stub
390
- count_request_stub
391
-
392
- valid_requests_and_expectations
393
- end
394
- end
395
-
396
- context 'When the tagline is not present' do
397
- let(:body) do
398
- {
399
- 'version' => {
400
- 'number' => '7.10.0',
401
- 'build_flavor' => 'default'
402
- }
403
- }.to_json
404
- end
405
-
406
- it 'Fails validation' do
407
- verify_request_stub
408
- count_request_stub
409
-
410
- error_requests_and_expectations
411
- end
412
- end
413
-
414
- context 'When the tagline is different' do
415
- let(:body) do
416
- {
417
- 'version' => {
418
- 'number' => '7.10.0',
419
- 'build_flavor' => 'default'
420
- },
421
- 'tagline' => 'You Know, for other stuff'
422
- }.to_json
423
- end
424
-
425
- it 'Fails validation' do
426
- verify_request_stub
427
- count_request_stub
428
-
429
- error_requests_and_expectations
430
- end
431
- end
432
-
433
- context 'When the build_flavor is not present' do
434
- let(:body) do
435
- {
436
- 'version' => {
437
- 'number' => '7.10.0'
438
- },
439
- 'tagline' => 'You Know, for Search'
440
- }.to_json
441
- end
442
-
443
- it 'Fails validation' do
444
- verify_request_stub
445
- count_request_stub
446
-
447
- error_requests_and_expectations(Elasticsearch::NOT_SUPPORTED_ELASTICSEARCH_WARNING)
448
- end
449
- end
450
- end
451
-
452
236
  context 'When doing a yaml content-type request' do
453
237
  let(:client) do
454
238
  Elasticsearch::Client.new(transport_options: {headers: { accept: 'application/yaml', content_type: 'application/yaml' }})
455
239
  end
456
240
 
457
241
  let(:headers) { { 'content-type' => 'application/yaml', 'X-Elastic-Product' => 'Elasticsearch' } }
458
- let(:body) { "---\nversion:\n number: \"7.14.0-SNAPSHOT\"\n" }
242
+ let(:body) { "---\nversion:\n number: \"8.0.0-SNAPSHOT\"\n" }
459
243
 
460
244
  it 'validates' do
461
245
  verify_request_stub
@@ -0,0 +1,55 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ require 'spec_helper'
18
+ require 'ostruct'
19
+
20
+ describe Elasticsearch::Client do
21
+ context 'when a header is set on an endpoint request' do
22
+ let(:client) { described_class.new }
23
+ let(:headers) { { 'user-agent' => 'my ruby app' } }
24
+
25
+ it 'performs the request with the header' do
26
+ allow(client).to receive(:perform_request) { OpenStruct.new(body: '') }
27
+ expect { client.search(headers: headers) }.not_to raise_error
28
+ expect(client).to have_received(:perform_request)
29
+ .with('GET', '_search', {}, nil, headers)
30
+ end
31
+ end
32
+
33
+ context 'when a header is set on an endpoint request and on initialization' do
34
+ let!(:client) do
35
+ described_class.new(
36
+ host: 'http://localhost:9200',
37
+ transport_options: { headers: instance_headers }
38
+ ).tap do |client|
39
+ client.instance_variable_set('@verified', true)
40
+ end
41
+ end
42
+ let(:instance_headers) { { set_in_instantiation: 'header value' } }
43
+ let(:param_headers) { { 'user-agent' => 'My Ruby Tests', 'set-on-method-call' => 'header value' } }
44
+
45
+ it 'performs the request with the header' do
46
+ expected_headers = client.transport.connections.connections.first.connection.headers.merge(param_headers)
47
+
48
+ expect_any_instance_of(Faraday::Connection)
49
+ .to receive(:run_request)
50
+ .with(:get, 'http://localhost:9200/_search', nil, expected_headers) { OpenStruct.new(body: '') }
51
+
52
+ client.search(headers: param_headers)
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,48 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ require 'spec_helper'
18
+ require 'ostruct'
19
+
20
+ describe Elasticsearch::Client do
21
+ let(:transport) { client.instance_variable_get('@transport') }
22
+ let(:client) { described_class.new.tap { |cl| cl.instance_variable_set('@verified', true) } }
23
+
24
+ before do
25
+ allow(transport).to receive(:perform_request) { OpenStruct.new(body: '') }
26
+ end
27
+
28
+ context 'when x-opaque-id is set' do
29
+ it 'uses x-opaque-id on a request' do
30
+ client.search(opaque_id: '12345')
31
+ expect(transport).to have_received(:perform_request)
32
+ .with('GET', '_search', {}, nil, { 'X-Opaque-Id' => '12345' })
33
+ end
34
+ end
35
+
36
+ context 'when an x-opaque-id prefix is set on initialization' do
37
+ let(:prefix) { 'elastic_cloud' }
38
+ let(:client) do
39
+ described_class.new(opaque_id_prefix: prefix).tap { |cl| cl.instance_variable_set('@verified', true) }
40
+ end
41
+
42
+ it 'uses x-opaque-id on a request' do
43
+ expect { client.search(opaque_id: '12345') }.not_to raise_error
44
+ expect(transport).to have_received(:perform_request)
45
+ .with('GET', '_search', {}, nil, { 'X-Opaque-Id' => 'elastic_cloud12345' })
46
+ end
47
+ end
48
+ end
@@ -14,13 +14,13 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
- require 'elasticsearch'
18
- require 'webmock/rspec'
17
+
18
+ require 'spec_helper'
19
19
 
20
20
  describe 'Elasticsearch: wrapper gem' do
21
21
  it 'requires all neccessary subgems' do
22
- expect(defined?(Elasticsearch::Client))
23
- expect(defined?(Elasticsearch::API))
22
+ expect(defined? Elasticsearch::Client)
23
+ expect(defined? Elasticsearch::API)
24
24
  end
25
25
 
26
26
  it 'mixes the API into the client' do
@@ -30,10 +30,4 @@ describe 'Elasticsearch: wrapper gem' do
30
30
  expect(client).to respond_to(:cluster)
31
31
  expect(client).to respond_to(:indices)
32
32
  end
33
-
34
- it 'can access the client transport' do
35
- client = Elasticsearch::Client.new
36
- expect(client.transport).to be_a(Elasticsearch::Transport::Client)
37
- expect(client.transport.transport).to be_a(Elasticsearch::Transport::Transport::HTTP::Faraday)
38
- end
39
33
  end