2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-06 10:50:21 +08:00

DEV: Drop TrackingLogger for FakeLogger (#16642)

This commit is contained in:
Jarek Radosz 2022-05-05 03:50:43 +02:00 committed by GitHub
parent 8442a07c13
commit fb1a3a1dbb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 35 deletions

View file

@ -25,21 +25,24 @@ describe Scheduler::Defer do
it "supports timeout reporting" do it "supports timeout reporting" do
@defer.timeout = 0.05 @defer.timeout = 0.05
m = track_log_messages do |messages| logger = track_log_messages do |l|
10.times do 10.times do
@defer.later("fast job") {} @defer.later("fast job") {}
end end
@defer.later "weird slow job" do @defer.later "weird slow job" do
sleep sleep
end end
wait_for(200) do wait_for(200) do
messages.length == 1 l.errors.length == 1
end end
end end
expect(m.length).to eq(1) expect(logger.warnings.length).to eq(0)
expect(m[0][2]).to include("weird slow job") expect(logger.fatals.length).to eq(0)
expect(logger.errors.length).to eq(1)
expect(logger.errors).to include(/'weird slow job' is still running/)
end end
it "can pause and resume" do it "can pause and resume" do

View file

@ -429,25 +429,11 @@ ensure
STDOUT.unstub(:write) STDOUT.unstub(:write)
end end
class TrackingLogger < ::Logger def track_log_messages
attr_reader :messages
def initialize(level: nil)
super(nil)
@messages = []
@level = level
end
def add(*args, &block)
if !level || args[0].to_i >= level
@messages << args
end
end
end
def track_log_messages(level: nil)
old_logger = Rails.logger old_logger = Rails.logger
logger = Rails.logger = TrackingLogger.new(level: level) logger = Rails.logger = FakeLogger.new
yield logger.messages yield logger
logger.messages logger
ensure ensure
Rails.logger = old_logger Rails.logger = old_logger
end end

View file

@ -591,11 +591,13 @@ describe SessionController do
sso.external_id = ' ' sso.external_id = ' '
sso.username = 'sam' sso.username = 'sam'
messages = track_log_messages(level: Logger::WARN) do logger = track_log_messages do
get "/session/sso_login", params: Rack::Utils.parse_query(sso.payload), headers: headers get "/session/sso_login", params: Rack::Utils.parse_query(sso.payload), headers: headers
end end
expect(messages.length).to eq(0) expect(logger.warnings.length).to eq(0)
expect(logger.errors.length).to eq(0)
expect(logger.fatals.length).to eq(0)
expect(response.status).to eq(500) expect(response.status).to eq(500)
expect(response.body).to include(I18n.t('discourse_connect.blank_id_error')) expect(response.body).to include(I18n.t('discourse_connect.blank_id_error'))
end end
@ -607,11 +609,13 @@ describe SessionController do
sso.external_id = '123' sso.external_id = '123'
sso.username = 'sam' sso.username = 'sam'
messages = track_log_messages(level: Logger::WARN) do logger = track_log_messages do
get "/session/sso_login", params: Rack::Utils.parse_query(sso.payload), headers: headers get "/session/sso_login", params: Rack::Utils.parse_query(sso.payload), headers: headers
end end
expect(messages.length).to eq(0) expect(logger.warnings.length).to eq(0)
expect(logger.errors.length).to eq(0)
expect(logger.fatals.length).to eq(0)
expect(response.status).to eq(500) expect(response.status).to eq(500)
expect(response.body).to include(I18n.t("discourse_connect.email_error", email: ERB::Util.html_escape("test@test.com"))) expect(response.body).to include(I18n.t("discourse_connect.email_error", email: ERB::Util.html_escape("test@test.com")))
end end

View file

@ -85,10 +85,10 @@ describe UserDestroyer do
context 'context is missing' do context 'context is missing' do
it "logs warning message if context is missing" do it "logs warning message if context is missing" do
messages = track_log_messages(level: Logger::WARN) do logger = track_log_messages do
UserDestroyer.new(admin).destroy(user) UserDestroyer.new(admin).destroy(user)
end end
expect(messages[0][2]).to include("User destroyed without context from:") expect(logger.warnings).to include(/User destroyed without context from:/)
end end
end end

View file

@ -1,17 +1,21 @@
# frozen_string_literal: true # frozen_string_literal: true
class FakeLogger class FakeLogger
attr_reader :warnings, :errors, :infos, :fatals attr_reader :debug, :infos, :warnings, :errors, :fatals
attr_accessor :level attr_accessor :level
def initialize def initialize
@warnings = []
@errors = []
@debug = [] @debug = []
@infos = [] @infos = []
@warnings = []
@errors = []
@fatals = [] @fatals = []
end end
def debug(message)
@debug << message
end
def info(message = nil) def info(message = nil)
@infos << message @infos << message
end end
@ -28,10 +32,6 @@ class FakeLogger
@fatals << message @fatals << message
end end
def debug(message)
@debug << message
end
def formatter def formatter
end end
end end