1
+ /*
2
+ Copyright 2022 The Dapr Authors
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+ Unless required by applicable law or agreed to in writing, software
8
+ distributed under the License is distributed on an "AS IS" BASIS,
9
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ See the License for the specific language governing permissions and
11
+ limitations under the License.
12
+ */
13
+
14
+ import { LoggerService } from "../../../src" ;
15
+ import { Logger } from "../../../src/logger/Logger"
16
+ import { LogLevel } from "../../../src/types/logger/LogLevel"
17
+
18
+ describe ( 'Logger' , ( ) => {
19
+ it ( 'should not display logs below the set log level' , ( ) => {
20
+ // arrange
21
+ const mockLoggerService = new MockLoggerService ( ) ;
22
+ const errorLogger = new Logger ( { logLevel : LogLevel . error , logService : mockLoggerService } )
23
+ const infoLogger = new Logger ( { logLevel : LogLevel . info , logService : mockLoggerService } )
24
+ const debugLogger = new Logger ( { logLevel : LogLevel . debug , logService : mockLoggerService } )
25
+
26
+ // act
27
+ callAllLogLevels ( errorLogger )
28
+ callAllLogLevels ( infoLogger )
29
+ callAllLogLevels ( debugLogger )
30
+
31
+ // assert
32
+ expect ( mockLoggerService . errorCounter ) . toBe ( 1 + 1 + 1 )
33
+ expect ( mockLoggerService . warnCounter ) . toBe ( 0 + 1 + 1 )
34
+ expect ( mockLoggerService . infoCounter ) . toBe ( 0 + 1 + 1 )
35
+ expect ( mockLoggerService . verboseCounter ) . toBe ( 0 + 0 + 1 )
36
+ expect ( mockLoggerService . debugCounter ) . toBe ( 0 + 0 + 1 )
37
+ } )
38
+ } )
39
+
40
+ class MockLoggerService implements LoggerService {
41
+ public errorCounter = 0 ;
42
+ public warnCounter = 0 ;
43
+ public infoCounter = 0 ;
44
+ public verboseCounter = 0 ;
45
+ public debugCounter = 0 ;
46
+
47
+ error ( _message : any , ..._optionalParams : any [ ] ) : void {
48
+ this . errorCounter ++ ;
49
+ }
50
+ warn ( _message : any , ..._optionalParams : any [ ] ) : void {
51
+ this . warnCounter ++ ;
52
+ }
53
+ info ( _message : any , ..._optionalParams : any [ ] ) : void {
54
+ this . infoCounter ++ ;
55
+ }
56
+ verbose ( _message : any , ..._optionalParams : any [ ] ) : void {
57
+ this . verboseCounter ++ ;
58
+ }
59
+ debug ( _message : any , ..._optionalParams : any [ ] ) : void {
60
+ this . debugCounter ++
61
+ }
62
+ }
63
+
64
+ function callAllLogLevels ( logger : Logger ) {
65
+ logger . error ( "component" , "area" , "message" )
66
+ logger . warn ( "component" , "area" , "message" )
67
+ logger . info ( "component" , "area" , "message" )
68
+ logger . verbose ( "component" , "area" , "message" )
69
+ logger . debug ( "component" , "area" , "message" )
70
+ }
0 commit comments