Skip to content

Commit 051b2ef

Browse files
committed
More test refactoring
1 parent ff207fd commit 051b2ef

File tree

7 files changed

+50
-118
lines changed

7 files changed

+50
-118
lines changed

Gemfile

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ gem "honeybadger"
2323
# [optional] Kafka appender
2424
gem "ruby-kafka"
2525
# [optional] MongoDB appender
26+
gem "base64"
2627
gem "mongo"
2728
# [optional] NewRelic appender ( Tests use a mock class )
2829
# gem 'newrelic_rpm'
@@ -38,6 +39,7 @@ gem "sentry-raven"
3839
# [optional] new Sentry appender
3940
gem "sentry-ruby"
4041
# [optional] Syslog appender when communicating with a remote syslogd over TCP
42+
gem "syslog"
4143
gem "syslog_protocol"
4244

4345
gem "rubocop", "~> 1.28.1", require: false

lib/semantic_logger/test/capture_log_events.rb

+5
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ def log(log)
3131
@events << log
3232
end
3333

34+
# Supports batching of log events
35+
def batch(logs)
36+
@events += log
37+
end
38+
3439
def clear
3540
@events.clear
3641
end

test/appender/wrapper_test.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def flush
7272
log.backtrace = backtrace
7373
appender.log(log.freeze)
7474
assert_match(
75-
/\d+-\d+-\d+ \d+:\d+:\d+.\d+ W \[\d+:\w+\ default_test.rb:35] User -- hello world/, mock_logger.message
75+
/\d+-\d+-\d+ \d+:\d+:\d+.\d+ W \[\d+:\w+\ default_test.rb:35\] User -- hello world/, mock_logger.message
7676
)
7777
end
7878

test/appenders_test.rb

+13-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
class AppendersTest < Minitest::Test
44
describe SemanticLogger::Appenders do
5-
let :appenders do
6-
logger = SemanticLogger["Test"]
7-
SemanticLogger::Appenders.new(logger)
8-
end
5+
let(:capture_logger) { SemanticLogger::Test::CaptureLogEvents.new }
6+
let(:appenders) { SemanticLogger::Appenders.new(capture_logger) }
7+
let(:logger) { SemanticLogger::Test::CaptureLogEvents.new }
98

109
describe "#add" do
1110
it "adds file appender" do
@@ -90,6 +89,16 @@ class AppendersTest < Minitest::Test
9089

9190
assert_equal 2, appenders.size
9291
end
92+
93+
it "adds batch proxy" do
94+
appender = appenders.add(appender: logger, batch: true)
95+
assert_instance_of SemanticLogger::Appender::AsyncBatch, appender
96+
end
97+
98+
# it "adds async proxy" do
99+
# appender = appenders.add(appender: logger, async: true)
100+
# assert_instance_of SemanticLogger::Appender::Async, appender
101+
# end
93102
end
94103
end
95104
end

test/formatters_test.rb

+2-7
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,8 @@
33
class FormattersTest < Minitest::Test
44
describe SemanticLogger::Formatters do
55
describe ".factory" do
6-
let :log do
7-
SemanticLogger::Log.new("Test", :info)
8-
end
9-
10-
let :appender do
11-
SemanticLogger::Appender::IO.new($stdout)
12-
end
6+
let(:log) { SemanticLogger::Log.new("Test", :info) }
7+
let(:appender) { SemanticLogger::Appender::IO.new($stdout) }
138

149
it "from a symbol" do
1510
assert formatter = SemanticLogger::Formatters.factory(:raw)

test/logger_test.rb

+26-105
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Unit Test for SemanticLogger::Logger
44
class LoggerTest < Minitest::Test
55
describe SemanticLogger::Logger do
6-
include InMemoryAppenderHelper
6+
let(:logger) { SemanticLogger::Test::CaptureLogEvents.new }
77

88
# Complex filters
99
module ComplexFilter
@@ -17,96 +17,36 @@ def self.call(log)
1717
[:debug].each do |level|
1818
describe "##{level}" do
1919
describe "#filter" do
20-
describe "at the appender level" do
21-
it "Proc" do
22-
appender.filter = ->(log) { (/\AExclude/ =~ log.message).nil? }
23-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
20+
it "Proc" do
21+
logger.filter = ->(log) { (/\AExclude/ =~ log.message).nil? }
22+
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
2423

25-
refute log_message
26-
end
27-
28-
it "Module" do
29-
appender.filter = ComplexFilter
30-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
31-
32-
refute log_message
33-
end
34-
35-
it "RegExp" do
36-
appender.filter = ->(log) { (/\AExclude/ =~ log.message).nil? }
37-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
38-
39-
refute log_message
40-
end
24+
assert logger.events.empty?
4125
end
4226

43-
describe "at the logger level" do
44-
it "Proc" do
45-
logger.filter = ->(log) { (/\AExclude/ =~ log.message).nil? }
46-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
47-
48-
refute log_message
49-
end
27+
it "Module" do
28+
logger.filter = ComplexFilter
29+
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
5030

51-
it "Module" do
52-
logger.filter = ComplexFilter
53-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
54-
55-
refute log_message
56-
end
57-
58-
it "RegExp" do
59-
logger.filter = ->(log) { (/\AExclude/ =~ log.message).nil? }
60-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
61-
62-
refute log_message
63-
end
31+
assert logger.events.empty?
6432
end
6533

66-
describe "on the logger initializer" do
67-
describe "Proc" do
68-
let :log_filter do
69-
->(log) { (/\AExclude/ =~ log.message).nil? }
70-
end
71-
72-
it "filters" do
73-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
74-
refute log_message
75-
end
76-
end
77-
78-
describe "Module" do
79-
let :log_filter do
80-
ComplexFilter
81-
end
34+
it "RegExp" do
35+
logger.filter = ->(log) { (/\AExclude/ =~ log.message).nil? }
36+
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
8237

83-
it "filters" do
84-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
85-
refute log_message
86-
end
87-
end
88-
89-
describe "RegExp" do
90-
let :log_filter do
91-
/\ALogger/
92-
end
93-
94-
it "filters" do
95-
logger.send(level, "Exclude this log message", @hash) { "Calculations" }
96-
refute log_message
97-
end
98-
end
38+
assert logger.events.empty?
9939
end
10040
end
10141
end
10242
end
10343

10444
describe "when level is too high" do
10545
it "does not log" do
106-
SemanticLogger.default_level = :error
46+
logger.level = :error
10747
logger.info("Exclude this log message")
10848

109-
refute log_message
49+
assert logger.events.empty?
11050
end
11151
end
11252

@@ -126,26 +66,12 @@ def self.call(log)
12666

12767
describe "#level?" do
12868
it "return true for debug? with :trace level" do
129-
SemanticLogger.default_level = :trace
69+
logger.level = :trace
13070
assert_equal :trace, logger.level
13171
assert_equal true, logger.debug?
13272
assert_equal true, logger.trace?
13373
end
13474

135-
it "return false for debug? with global :debug level" do
136-
SemanticLogger.default_level = :debug
137-
assert_equal :debug, logger.level, logger.inspect
138-
assert_equal true, logger.debug?, logger.inspect
139-
assert_equal false, logger.trace?, logger.inspect
140-
end
141-
142-
it "return true for debug? with global :info level" do
143-
SemanticLogger.default_level = :info
144-
assert_equal :info, logger.level, logger.inspect
145-
assert_equal false, logger.debug?, logger.inspect
146-
assert_equal false, logger.trace?, logger.inspect
147-
end
148-
14975
it "return false for debug? with instance :debug level" do
15076
logger.level = :debug
15177
assert_equal :debug, logger.level, logger.inspect
@@ -162,16 +88,11 @@ def self.call(log)
16288
end
16389

16490
describe ".tagged" do
165-
it "sets global defaults" do
166-
assert_equal [], SemanticLogger.tags
167-
assert_equal 0, SemanticLogger.backtrace_level_index
168-
end
169-
17091
it "add tags to log entries" do
17192
logger.tagged("12345", "DJHSFK") do
17293
logger.info("hello world")
17394

174-
assert log = log_message
95+
assert log = logger.events.first
17596
assert_equal "hello world", log.message
17697
assert_equal %w[12345 DJHSFK], log.tags
17798
end
@@ -183,7 +104,7 @@ def self.call(log)
183104
assert_equal ["First Level", "tags", "Second Level"], logger.tags
184105
logger.info("hello world")
185106

186-
assert log = log_message
107+
assert log = logger.events.first
187108
assert_equal "hello world", log.message
188109
assert_equal ["First Level", "tags", "Second Level"], log.tags
189110
end
@@ -193,14 +114,14 @@ def self.call(log)
193114

194115
it "also supports named tagging" do
195116
logger.tagged(level1: 1) do
196-
assert_equal({level1: 1}, SemanticLogger.named_tags)
197-
assert_equal({level1: 1}, logger.named_tags)
117+
assert_equal({ level1: 1 }, SemanticLogger.named_tags)
118+
assert_equal({ level1: 1 }, logger.named_tags)
198119
logger.tagged(level2: 2, more: "data") do
199-
assert_equal({level1: 1, level2: 2, more: "data"}, SemanticLogger.named_tags)
200-
assert_equal({level1: 1, level2: 2, more: "data"}, logger.named_tags)
120+
assert_equal({ level1: 1, level2: 2, more: "data" }, SemanticLogger.named_tags)
121+
assert_equal({ level1: 1, level2: 2, more: "data" }, logger.named_tags)
201122
logger.tagged(level3: 3) do
202-
assert_equal({level1: 1, level2: 2, more: "data", level3: 3}, SemanticLogger.named_tags)
203-
assert_equal({level1: 1, level2: 2, more: "data", level3: 3}, logger.named_tags)
123+
assert_equal({ level1: 1, level2: 2, more: "data", level3: 3 }, SemanticLogger.named_tags)
124+
assert_equal({ level1: 1, level2: 2, more: "data", level3: 3 }, logger.named_tags)
204125
end
205126
end
206127
end
@@ -210,7 +131,7 @@ def self.call(log)
210131
logger.tagged("", %w[12345 DJHSFK], nil) do
211132
logger.info("hello world")
212133

213-
assert log = log_message
134+
assert log = logger.events.first
214135
assert_equal "hello world", log.message
215136
assert_equal %w[12345 DJHSFK], log.tags
216137
end
@@ -220,7 +141,7 @@ def self.call(log)
220141
logger.tagged(%w[first second]) do
221142
logger.info("hello world")
222143

223-
assert log = log_message
144+
assert log = logger.events.first
224145
assert_equal "hello world", log.message
225146
assert_equal %w[first second], log.tags
226147
end

test/measure_test.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ class MeasureTest < Minitest::Test
307307
assert_equal 1, appender.events.count, -> { appender.events.to_h.ai }
308308
assert log = appender.events.first
309309
assert_equal "hello world", log.message
310-
assert_equal :warn, log.message
310+
assert_equal :info, log.level
311311
end
312312

313313
it "does not silence higher level messages" do

0 commit comments

Comments
 (0)