Sha256: 86e4e17b0d22ff6e64b6221caebb6dff2d5f43fa18fe1d22ac9a0aa02398a146

Contents?: true

Size: 1.05 KB

Versions: 3

Compression:

Stored size: 1.05 KB

Contents

require 'spec_helper'

describe 'Rack request logger with Sinatra', timecop: true do
  let(:io) { StringIO.new }
  before do
    Loga.reset
    Loga.configure do |config|
      config.service_name      = 'hello_world_app'
      config.service_version   = '1.0'
      config.filter_parameters = [:password]
      config.device            = io
    end
    Loga.initialize!
  end
  let(:json) do
    io.rewind
    JSON.parse(io.read)
  end

  let(:app) do
    Class.new(Sinatra::Base) do
      # Disable show_exceptions and rely on user defined exception handlers
      # (e.i. the error blocks)
      set :show_exceptions, false

      use Loga::Rack::RequestId
      use Loga::Rack::Logger, Loga.logger, [:uuid]

      error do
        status 500
        body 'Ooops'
      end

      get '/ok' do
        'Hello Sinatra'
      end

      get '/error' do
        nil.name
      end

      post '/users' do
        content_type :json
        params.to_json
      end

      get '/new' do
        redirect '/ok'
      end
    end
  end

  include_examples 'request logger'
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
loga-1.1.1 spec/integration/sinatra_spec.rb
loga-1.1.0 spec/integration/sinatra_spec.rb
loga-1.0.0 spec/integration/sinatra_spec.rb