Sha256: 0ff522a000dd68e575068f7ef3db7914e345c81b49b2b1e526186ebe0667c6a9

Contents?: true

Size: 1.77 KB

Versions: 6

Compression:

Stored size: 1.77 KB

Contents

require File.expand_path('../test_helper', File.dirname(__FILE__))

class MiddlewareTest < Test::Unit::TestCase

  should "call app" do
    request = Rack::MockRequest.env_for("/anything.json")
    middleware = Imprint::Middleware.new(fake_app)
    results = middleware.call(request)
    assert_equal "/anything.json", results.last
  end

  should 'pass all rack lint checks' do
    app = Rack::Lint.new(Imprint::Middleware.new(fake_app))
    env = Rack::MockRequest.env_for('/hello')
    app.call(env)
  end

  should "set trace_id before calling app" do
    request = Rack::MockRequest.env_for("/anything.json")
    middleware = Imprint::Middleware.new(fake_app)
    results = middleware.call(request)
    assert_equal "/anything.json", results.last
    assert_not_nil ::Imprint::Tracer.get_trace_id
    assert ::Imprint::Tracer.get_trace_id!='-1'
  end

  should "set trace_id from rails request_id" do
    request = Rack::MockRequest.env_for("/anything.json", {"action_dispatch.request_id" => 'existing_id' })
    middleware = Imprint::Middleware.new(fake_app)
    results = middleware.call(request)
    assert_equal "/anything.json", results.last
    assert_not_nil ::Imprint::Tracer.get_trace_id
    assert ::Imprint::Tracer.get_trace_id=='existing_id'
  end

  should "set trace_id from passed in imprint header" do
    request = Rack::MockRequest.env_for("/anything.json", {"HTTP_IMPRINTID" => 'existing_trace_id' })
    middleware = Imprint::Middleware.new(fake_app)
    results = middleware.call(request)
    assert_equal "/anything.json", results.last
    assert_not_nil ::Imprint::Tracer.get_trace_id
    assert ::Imprint::Tracer.get_trace_id=='existing_trace_id'
  end

  private

  def fake_app
    @app ||= lambda { |env| [200, {'Content-Type' => 'text/plain'}, env['PATH_INFO']] }
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
imprint-1.3.0 test/unit/middleware_test.rb
imprint-1.2.1 test/unit/middleware_test.rb
imprint-1.2.0 test/unit/middleware_test.rb
imprint-1.1.5 test/unit/middleware_test.rb
imprint-1.1.4 test/unit/middleware_test.rb
imprint-1.1.3 test/unit/middleware_test.rb