Sha256: f8c800c0adb3d9bc75012c36d569ce806a535fb2162858a3a89e90c0cc2a1ec8

Contents?: true

Size: 1.93 KB

Versions: 1

Compression:

Stored size: 1.93 KB

Contents

# (c) Copyright IBM Corp. 2021
# (c) Copyright Instana Inc. 2016

require 'test_helper'
require 'rack/test'

class SinatraTest < Minitest::Test
  include Rack::Test::Methods
  APP = Rack::Builder.parse_file('test/support/apps/sinatra/config.ru')

  sinatra_version = Gem::Specification.find_by_name('sinatra').version
  if sinatra_version < Gem::Version.new('4.0.0')
    APP = APP.first
  end

  def app
    APP
  end

  def test_basic_get
    clear_all!
    r = get '/'

    assert last_response.ok?


    spans = ::Instana.processor.queued_spans
    assert_equal 1, spans.count

    rack_span = spans.first
    assert_equal :rack, rack_span[:n]
    # ::Instana::Util.pry!

    assert r.headers.key?("X-Instana-T")
    assert r.headers["X-Instana-T"] == ::Instana::Util.id_to_header(rack_span[:t])
    assert r.headers.key?("X-Instana-S")
    assert r.headers["X-Instana-S"] == ::Instana::Util.id_to_header(rack_span[:s])
    assert r.headers.key?("X-Instana-L")
    assert r.headers["X-Instana-L"] == '1'
    assert r.headers.key?("Server-Timing")
    assert r.headers["Server-Timing"] == "intid;desc=#{::Instana::Util.id_to_header(rack_span[:t])}"

    assert rack_span.key?(:data)
    assert rack_span[:data].key?(:http)
    assert rack_span[:data][:http].key?(:method)
    assert_equal "GET", rack_span[:data][:http][:method]

    assert rack_span[:data][:http].key?(:url)
    assert_equal "/", rack_span[:data][:http][:url]

    assert rack_span[:data][:http].key?(:status)
    assert_equal 200, rack_span[:data][:http][:status]

    assert rack_span[:data][:http].key?(:host)
    assert_equal "example.org", rack_span[:data][:http][:host]
  end

  def test_path_template
    clear_all!

    r = get '/greet/instana'
    assert last_response.ok?

    spans = ::Instana.processor.queued_spans
    assert_equal 1, spans.count

    first_span = spans.first
    assert_equal :rack, first_span[:n]
    assert_equal '/greet/:name', first_span[:data][:http][:path_tpl]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
instana-1.217.1 test/frameworks/sinatra_test.rb