مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +00:00
This adds a comprehensive set of tests for the message unqueueing service. Additionally, it improves how message databases are used for testing environments.
48 أسطر
940 B
Ruby
48 أسطر
940 B
Ruby
# frozen_string_literal: true
|
|
|
|
class TestLogger
|
|
|
|
def initialize
|
|
@log_lines = []
|
|
@group_set = Klogger::GroupSet.new
|
|
@print = false
|
|
end
|
|
|
|
def print!
|
|
@print = true
|
|
end
|
|
|
|
def add(level, message, **tags)
|
|
@group_set.groups.each do |group|
|
|
tags = group[:tags].merge(tags)
|
|
end
|
|
|
|
@log_lines << { level: level, message: message, tags: tags }
|
|
puts message if @print
|
|
true
|
|
end
|
|
|
|
[:info, :debug, :warn, :error].each do |level|
|
|
define_method(level) do |message, **tags|
|
|
add(level, message, **tags)
|
|
end
|
|
end
|
|
|
|
def tagged(**tags, &block)
|
|
@group_set.call_without_id(**tags, &block)
|
|
end
|
|
|
|
def log_line(match)
|
|
@log_lines.reverse.each do |log_line|
|
|
return log_line if match.is_a?(String) && log_line[:message] == match
|
|
return log_line if match.is_a?(Regexp) && log_line[:message] =~ match
|
|
end
|
|
nil
|
|
end
|
|
|
|
def has_logged?(match)
|
|
!!log_line(match)
|
|
end
|
|
|
|
end
|