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