Skip to content

Commit 244c691

Browse files
authored
Merge pull request #192 from mashhurs/fix-unit-tests
Fix the unit test cases caused by #191
2 parents ef2f5ec + e8a38ce commit 244c691

File tree

1 file changed

+43
-9
lines changed

1 file changed

+43
-9
lines changed

spec/filters/elasticsearch_spec.rb

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,18 @@
6060
allow(plugin).to receive(:get_client).and_return(filter_client)
6161
allow(filter_client).to receive(:serverless?).and_return(true)
6262
allow(filter_client).to receive(:client).and_return(es_client)
63-
allow(es_client).to receive(:info).with(a_hash_including(:headers => LogStash::Filters::ElasticsearchClient::DEFAULT_EAV_HEADER)).and_raise(
64-
Elasticsearch::Transport::Transport::Errors::BadRequest.new
65-
)
63+
64+
if elastic_ruby_v8_client_available?
65+
allow(es_client).to receive(:info)
66+
.with(a_hash_including(
67+
:headers => LogStash::Filters::ElasticsearchClient::DEFAULT_EAV_HEADER))
68+
.and_raise(Elastic::Transport::Transport::Errors::BadRequest.new)
69+
else
70+
allow(es_client).to receive(:info)
71+
.with(a_hash_including(
72+
:headers => LogStash::Filters::ElasticsearchClient::DEFAULT_EAV_HEADER))
73+
.and_raise(Elasticsearch::Transport::Transport::Errors::BadRequest.new)
74+
end
6675
end
6776

6877
it "raises an exception when Elastic Api Version is not supported" do
@@ -103,7 +112,11 @@
103112

104113
before(:each) do
105114
allow(LogStash::Filters::ElasticsearchClient).to receive(:new).and_return(client)
106-
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
115+
if elastic_ruby_v8_client_available?
116+
allow(client).to receive(:es_transport_client_type).and_return('elastic_transport')
117+
else
118+
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
119+
end
107120
allow(client).to receive(:search).and_return(response)
108121
allow(plugin).to receive(:test_connection!)
109122
allow(plugin).to receive(:setup_serverless)
@@ -348,7 +361,11 @@
348361

349362
before do
350363
allow(plugin).to receive(:get_client).and_return(client_double)
351-
allow(client_double).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
364+
if elastic_ruby_v8_client_available?
365+
allow(client_double).to receive(:es_transport_client_type).and_return('elastic_transport')
366+
else
367+
allow(client_double).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
368+
end
352369
allow(client_double).to receive(:client).and_return(transport_double)
353370
end
354371

@@ -508,7 +525,12 @@ def wait_receive_request
508525
# this spec is a safeguard to trigger an assessment of thread-safety should
509526
# we choose a different transport adapter in the future.
510527
transport_class = extract_transport(client).options.fetch(:transport_class)
511-
expect(transport_class).to equal ::Elasticsearch::Transport::Transport::HTTP::Manticore
528+
if elastic_ruby_v8_client_available?
529+
allow(client).to receive(:es_transport_client_type).and_return("elastic_transport")
530+
expect(transport_class).to equal ::Elastic::Transport::Transport::HTTP::Manticore
531+
else
532+
expect(transport_class).to equal ::Elasticsearch::Transport::Transport::HTTP::Manticore
533+
end
512534
end
513535

514536
it 'uses a client with sufficient connection pool size' do
@@ -823,7 +845,11 @@ def wait_receive_request
823845

824846
before(:each) do
825847
allow(LogStash::Filters::ElasticsearchClient).to receive(:new).and_return(client)
826-
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
848+
if elastic_ruby_v8_client_available?
849+
allow(client).to receive(:es_transport_client_type).and_return('elastic_transport')
850+
else
851+
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
852+
end
827853
allow(plugin).to receive(:test_connection!)
828854
allow(plugin).to receive(:setup_serverless)
829855
plugin.register
@@ -838,11 +864,19 @@ def wait_receive_request
838864
end
839865
end
840866

841-
# @note can be removed once gem depends on elasticsearch >= 6.x
842-
def extract_transport(client) # on 7.x client.transport is a ES::Transport::Client
867+
def extract_transport(client)
868+
# on 7x: client.transport.transport
869+
# on >=8.x: client.transport
843870
client.transport.respond_to?(:transport) ? client.transport.transport : client.transport
844871
end
845872

873+
def elastic_ruby_v8_client_available?
874+
Elasticsearch::Transport
875+
false
876+
rescue NameError # NameError: uninitialized constant Elasticsearch::Transport if Elastic Ruby client is not available
877+
true
878+
end
879+
846880
class MockResponse
847881
attr_reader :code, :headers
848882

0 commit comments

Comments
 (0)