Sha256: bbdd8e4328d88c8d74ee49cd1b4d20dd0dfaab870f7c1ec946eb3c53de018c53

Contents?: true

Size: 1.54 KB

Versions: 3

Compression:

Stored size: 1.54 KB

Contents

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

####
# Testing Rails integration without Rails isn't fun
# The below test double classes let us do that.
# along with the implemented fakes as protected methods
####
module ActionDispatch
  module Http
    class ParameterFilter
      def initialize(opts)
      end

      def filter(params)
        params
      end
    end
  end
end

class Rails
  def self.application
  end
end

class Time
  def to_default_s
    self.to_s
  end
end

class LogHelpersTest < Test::Unit::TestCase
  include Imprint::LogHelpers
  Imprint.configure({})

  should "log entry" do
    stub_rails
    logger.expects(:info).with(anything).once
    log_entrypoint
  end

  should "log entry catches exceptions and logs them" do
    logger.expects(:error).with(anything).once
    log_entrypoint
  end

  protected

  def request
    request = Rack::MockRequest.env_for("/anything.json")

    def request.headers
      {}
    end

    def request.method
      {}
    end

    def request.url
      ''
    end

    def request.path
      ''
    end

    def request.remote_ip
      ''
    end

    def request.query_parameters
      {}
    end

    request
  end

  def stub_rails
    rails_config ||= mock('config')
    rails_config.stubs(:filter_parameters).returns([])
    rails_app ||= mock('application')
    rails_app.stubs(:config).returns(rails_config)
    Rails.stubs(:application).returns(rails_app)
  end

  def logger
    @fake_log ||= mock('logger')
  end

  def cookies
    {}
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
imprint-1.3.0 test/unit/log_helpers_test.rb
imprint-1.2.1 test/unit/log_helpers_test.rb
imprint-1.2.0 test/unit/log_helpers_test.rb