Sha256: a8a99f8d04459df9d536280760355461c8ab917268b55b8f5df99928b1f8f9ba

Contents?: true

Size: 1.66 KB

Versions: 14

Compression:

Stored size: 1.66 KB

Contents

# frozen_string_literal: true

require_relative '../../test_helper'
require 'rack'
require 'logster/redis_store'
require 'logster/middleware/reporter'

class TestReporter < Minitest::Test

  def setup
    Logster.store = Logster::RedisStore.new
    Logster.store.clear_all
    Logster.config.enable_js_error_reporting = true
  end

  def test_logs_errors
    reporter = Logster::Middleware::Reporter.new(nil)
    env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello")
    status, = reporter.call(env)

    assert_equal(200, status)
    assert_equal(1, Logster.store.count)
  end

  def test_respects_ban_on_errors
    Logster.config.enable_js_error_reporting = false

    reporter = Logster::Middleware::Reporter.new(nil)
    env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello")
    status, = reporter.call(env)

    assert_equal(403, status)
    assert_equal(0, Logster.store.count)
  end

  def test_rate_limiting
    reporter = Logster::Middleware::Reporter.new(nil)
    env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello")
    status, = reporter.call(env)

    assert_equal(200, status)
    assert_equal(1, Logster.store.count)

    reporter = Logster::Middleware::Reporter.new(nil)
    env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello2")
    status, = reporter.call(env)

    assert_equal(429, status)
    assert_equal(1, Logster.store.count)

    reporter = Logster::Middleware::Reporter.new(nil)
    env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello2", "REMOTE_ADDR" => "100.1.1.2")
    status, = reporter.call(env)

    assert_equal(200, status)
    assert_equal(2, Logster.store.count)
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
logster-2.8.0 test/logster/middleware/test_reporter.rb
logster-2.7.1 test/logster/middleware/test_reporter.rb
logster-2.7.0 test/logster/middleware/test_reporter.rb
logster-2.6.3 test/logster/middleware/test_reporter.rb
logster-2.6.2 test/logster/middleware/test_reporter.rb
logster-2.6.1 test/logster/middleware/test_reporter.rb
logster-2.6.0 test/logster/middleware/test_reporter.rb
logster-2.5.1 test/logster/middleware/test_reporter.rb
logster-2.5.0 test/logster/middleware/test_reporter.rb
logster-2.4.2 test/logster/middleware/test_reporter.rb
logster-2.4.1 test/logster/middleware/test_reporter.rb
logster-2.4.0 test/logster/middleware/test_reporter.rb
logster-2.3.3 test/logster/middleware/test_reporter.rb
logster-2.3.2 test/logster/middleware/test_reporter.rb