Skip to content

Commit 771e011

Browse files
committed
refactor: Optimize Logger methods to return early for None log level and update tests for log level constants
1 parent 5c3f846 commit 771e011

File tree

2 files changed

+33
-19
lines changed

2 files changed

+33
-19
lines changed

src/logger.ts

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,30 @@ export class Logger {
1313
}
1414

1515
public verbose(msg: string): void {
16-
if (this.logLevel !== LogLevelType.None) {
17-
if (this.logger.verbose && this.logLevel === LogLevelType.Verbose) {
18-
this.logger.verbose(msg);
19-
}
16+
if(this.logLevel === LogLevelType.None)
17+
return;
18+
19+
if (this.logger.verbose && this.logLevel === LogLevelType.Verbose) {
20+
this.logger.verbose(msg);
2021
}
2122
}
2223

2324
public warning(msg: string): void {
24-
if (this.logLevel !== LogLevelType.None) {
25-
if (
26-
this.logger.warning &&
27-
(this.logLevel === LogLevelType.Verbose || this.logLevel === LogLevelType.Warning)
28-
) {
29-
this.logger.warning(msg);
30-
}
25+
if(this.logLevel === LogLevelType.None)
26+
return;
27+
28+
if (this.logger.warning &&
29+
(this.logLevel === LogLevelType.Verbose || this.logLevel === LogLevelType.Warning)) {
30+
this.logger.warning(msg);
3131
}
3232
}
3333

3434
public error(msg: string): void {
35-
if (this.logLevel !== LogLevelType.None) {
36-
if (this.logger.error) {
37-
this.logger.error(msg);
38-
}
35+
if(this.logLevel === LogLevelType.None)
36+
return;
37+
38+
if (this.logger.error) {
39+
this.logger.error(msg);
3940
}
4041
}
4142

test/jest/logger.spec.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Logger, ConsoleLogger } from '../../src/logger';
2+
import { LogLevelType } from '../../src/sdkRuntimeModels';
23

34
describe('Logger', () => {
45
let mockConsole: any;
@@ -18,7 +19,7 @@ describe('Logger', () => {
1819
});
1920

2021
it('should call verbose, warning, and error methods on ConsoleLogger at correct log levels', () => {
21-
logger = new Logger({ logLevel: 'verbose' as any });
22+
logger = new Logger({ logLevel: LogLevelType.Verbose });
2223

2324
logger.verbose('message1');
2425
logger.warning('message2');
@@ -30,7 +31,7 @@ describe('Logger', () => {
3031
});
3132

3233
it('should only call warning and error at warning log level', () => {
33-
logger = new Logger({ logLevel: 'warning' as any });
34+
logger = new Logger({ logLevel: LogLevelType.Warning });
3435

3536
logger.verbose('message1');
3637
logger.warning('message2');
@@ -41,8 +42,8 @@ describe('Logger', () => {
4142
expect(mockConsole.error).toHaveBeenCalledWith('message3');
4243
});
4344

44-
it('should only call error at none log level', () => {
45-
logger = new Logger({ logLevel: 'none' as any });
45+
it('should not call any log methods at none log level', () => {
46+
logger = new Logger({ logLevel: LogLevelType.None });
4647

4748
logger.verbose('message1');
4849
logger.warning('message2');
@@ -53,6 +54,18 @@ describe('Logger', () => {
5354
expect(mockConsole.error).not.toHaveBeenCalled();
5455
});
5556

57+
it('should only call error at error log level', () => {
58+
logger = new Logger({ logLevel: LogLevelType.Error });
59+
60+
logger.verbose('message1');
61+
logger.warning('message2');
62+
logger.error('message3');
63+
64+
expect(mockConsole.info).not.toHaveBeenCalled();
65+
expect(mockConsole.warn).not.toHaveBeenCalled();
66+
expect(mockConsole.error).toHaveBeenCalledWith('message3');
67+
});
68+
5669
it('should allow providing a custom logger', () => {
5770
const customLogger = {
5871
verbose: jest.fn(),

0 commit comments

Comments
 (0)