Sha256: e23c87867390ae837d1ec66537bd27191a91ce5091c5ec91a56afaa829550e61

Contents?: true

Size: 1.76 KB

Versions: 38

Compression:

Stored size: 1.76 KB

Contents

require_relative "../../../spec/es_spec_helper"
require 'stud/temporary'
require "logstash/outputs/elasticsearch"
require 'manticore/client'

describe "Proxy option" do
  let(:settings) { { "hosts" => "node01" } }
  subject {
    LogStash::Outputs::ElasticSearch.new(settings)
  }

  before do
    allow(::Manticore::Client).to receive(:new).with(any_args).and_call_original
  end

  describe "valid configs" do
    before do
      subject.register
    end

    context "when specified as a URI" do
      shared_examples("hash conversion") do |hash|
        let(:settings) { super.merge("proxy" => proxy)}
        
        it "should set the proxy to the correct hash value" do
          expect(::Manticore::Client).to have_received(:new) do |options|
            expect(options[:proxy]).to eq(hash)
          end
        end
      end
      
      describe "simple proxy" do
        let(:proxy) { LogStash::Util::SafeURI.new("http://127.0.0.1:1234") }

        include_examples("hash conversion",
          {
            :host => "127.0.0.1",
            :scheme => "http",
            :port => 1234  
          }
        )
      end
      
      
      describe "a secure authed proxy" do
        let(:proxy) { LogStash::Util::SafeURI.new("https://myuser:mypass@127.0.0.1:1234") }

        include_examples("hash conversion",
          {
            :host => "127.0.0.1",
            :scheme => "https",
            :user => "myuser",
            :password => "mypass",
            :port => 1234  
          }
        )
      end
    end

    context "when not specified" do
      it "should not send the proxy option to manticore" do
        expect(::Manticore::Client).to have_received(:new) do |options|
          expect(options).not_to include(:proxy)
        end
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
logstash-output-elasticsearch-7.3.2-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-7.3.1-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-7.3.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.3.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-7.2.2-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-7.2.1-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-7.2.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-7.1.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-7.0.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.2.6-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.2.5-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.2.4-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.2.3-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.2.2-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.2.1-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.2.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.1.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb
logstash-output-elasticsearch-6.0.0-java spec/unit/outputs/elasticsearch_proxy_spec.rb