3
3
# Unit Test for SemanticLogger::Logger
4
4
class LoggerTest < Minitest ::Test
5
5
describe SemanticLogger ::Logger do
6
- include InMemoryAppenderHelper
6
+ let ( :logger ) { SemanticLogger :: Test :: CaptureLogEvents . new }
7
7
8
8
# Complex filters
9
9
module ComplexFilter
@@ -17,96 +17,36 @@ def self.call(log)
17
17
[ :debug ] . each do |level |
18
18
describe "##{ level } " do
19
19
describe "#filter" do
20
- describe "at the appender level" do
21
- it "Proc" do
22
- appender . filter = -> ( log ) { ( /\A Exclude/ =~ log . message ) . nil? }
23
- logger . send ( level , "Exclude this log message" , @hash ) { "Calculations" }
20
+ it "Proc" do
21
+ logger . filter = -> ( log ) { ( /\A Exclude/ =~ log . message ) . nil? }
22
+ logger . send ( level , "Exclude this log message" , @hash ) { "Calculations" }
24
23
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 ) { ( /\A Exclude/ =~ 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?
41
25
end
42
26
43
- describe "at the logger level" do
44
- it "Proc" do
45
- logger . filter = -> ( log ) { ( /\A Exclude/ =~ 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" }
50
30
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 ) { ( /\A Exclude/ =~ 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?
64
32
end
65
33
66
- describe "on the logger initializer" do
67
- describe "Proc" do
68
- let :log_filter do
69
- -> ( log ) { ( /\A Exclude/ =~ 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 ) { ( /\A Exclude/ =~ log . message ) . nil? }
36
+ logger . send ( level , "Exclude this log message" , @hash ) { "Calculations" }
82
37
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
- /\A Logger/
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?
99
39
end
100
40
end
101
41
end
102
42
end
103
43
104
44
describe "when level is too high" do
105
45
it "does not log" do
106
- SemanticLogger . default_level = :error
46
+ logger . level = :error
107
47
logger . info ( "Exclude this log message" )
108
48
109
- refute log_message
49
+ assert logger . events . empty?
110
50
end
111
51
end
112
52
@@ -126,26 +66,12 @@ def self.call(log)
126
66
127
67
describe "#level?" do
128
68
it "return true for debug? with :trace level" do
129
- SemanticLogger . default_level = :trace
69
+ logger . level = :trace
130
70
assert_equal :trace , logger . level
131
71
assert_equal true , logger . debug?
132
72
assert_equal true , logger . trace?
133
73
end
134
74
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
-
149
75
it "return false for debug? with instance :debug level" do
150
76
logger . level = :debug
151
77
assert_equal :debug , logger . level , logger . inspect
@@ -162,16 +88,11 @@ def self.call(log)
162
88
end
163
89
164
90
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
-
170
91
it "add tags to log entries" do
171
92
logger . tagged ( "12345" , "DJHSFK" ) do
172
93
logger . info ( "hello world" )
173
94
174
- assert log = log_message
95
+ assert log = logger . events . first
175
96
assert_equal "hello world" , log . message
176
97
assert_equal %w[ 12345 DJHSFK ] , log . tags
177
98
end
@@ -183,7 +104,7 @@ def self.call(log)
183
104
assert_equal [ "First Level" , "tags" , "Second Level" ] , logger . tags
184
105
logger . info ( "hello world" )
185
106
186
- assert log = log_message
107
+ assert log = logger . events . first
187
108
assert_equal "hello world" , log . message
188
109
assert_equal [ "First Level" , "tags" , "Second Level" ] , log . tags
189
110
end
@@ -193,14 +114,14 @@ def self.call(log)
193
114
194
115
it "also supports named tagging" do
195
116
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 )
198
119
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 )
201
122
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 )
204
125
end
205
126
end
206
127
end
@@ -210,7 +131,7 @@ def self.call(log)
210
131
logger . tagged ( "" , %w[ 12345 DJHSFK ] , nil ) do
211
132
logger . info ( "hello world" )
212
133
213
- assert log = log_message
134
+ assert log = logger . events . first
214
135
assert_equal "hello world" , log . message
215
136
assert_equal %w[ 12345 DJHSFK ] , log . tags
216
137
end
@@ -220,7 +141,7 @@ def self.call(log)
220
141
logger . tagged ( %w[ first second ] ) do
221
142
logger . info ( "hello world" )
222
143
223
- assert log = log_message
144
+ assert log = logger . events . first
224
145
assert_equal "hello world" , log . message
225
146
assert_equal %w[ first second ] , log . tags
226
147
end
0 commit comments