File: logging_test.rb

package info (click to toggle)
rails 2%3A7.2.2.1%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 43,352 kB
  • sloc: ruby: 349,799; javascript: 30,703; yacc: 46; sql: 43; sh: 29; makefile: 27
file content (39 lines) | stat: -rw-r--r-- 984 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# frozen_string_literal: true

require "abstract_unit"

class LoggingTest < ActionController::TestCase
  class TestController < ActionController::Base
    log_at :debug, if: -> { params[:level] == "debug" }
    log_at :warn,  if: -> { params[:level] == "warn" }

    def show
      render plain: logger.level
    end
  end

  tests TestController

  setup do
    @logger = @controller.logger = ActiveSupport::Logger.new(nil, level: Logger::INFO)
  end

  test "logging at the default level" do
    get :show
    assert_equal Logger::INFO.to_s, response.body
  end

  test "logging at a noisier level per request" do
    assert_no_changes -> { @logger.level } do
      get :show, params: { level: "debug" }
      assert_equal Logger::DEBUG.to_s, response.body
    end
  end

  test "logging at a quieter level per request" do
    assert_no_changes -> { @logger.level } do
      get :show, params: { level: "warn" }
      assert_equal Logger::WARN.to_s, response.body
    end
  end
end