mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-12-27 19:42:35 +00:00
Utils: Add needToLog function
This functions makes it possible to make a partial order of the Loglevel enum. This simplifies the if statements in ConsoleLogger. This is done, because the Loglevel enum already has a string backing for easy conversion from the config environmental variables and therefore can't also have a ordinal number assigned… Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
697ca823d5
commit
e9664b4aa7
2 changed files with 70 additions and 0 deletions
|
@ -5,9 +5,11 @@
|
|||
*/
|
||||
|
||||
import {
|
||||
needToLog,
|
||||
replaceAuthErrorsWithEnvironmentVariables,
|
||||
toArrayConfig,
|
||||
} from './utils';
|
||||
import { Loglevel } from './loglevel.enum';
|
||||
|
||||
describe('config utils', () => {
|
||||
describe('toArrayConfig', () => {
|
||||
|
@ -40,4 +42,46 @@ describe('config utils', () => {
|
|||
).toEqual('"HD_AUTH_GITLAB_test_SCOPE');
|
||||
});
|
||||
});
|
||||
describe('needToLog', () => {
|
||||
it('currentLevel ERROR', () => {
|
||||
const currentLevel = Loglevel.ERROR;
|
||||
expect(needToLog(currentLevel, Loglevel.ERROR)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.WARN)).toBeFalsy();
|
||||
expect(needToLog(currentLevel, Loglevel.INFO)).toBeFalsy();
|
||||
expect(needToLog(currentLevel, Loglevel.DEBUG)).toBeFalsy();
|
||||
expect(needToLog(currentLevel, Loglevel.TRACE)).toBeFalsy();
|
||||
});
|
||||
it('currentLevel WARN', () => {
|
||||
const currentLevel = Loglevel.WARN;
|
||||
expect(needToLog(currentLevel, Loglevel.ERROR)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.WARN)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.INFO)).toBeFalsy();
|
||||
expect(needToLog(currentLevel, Loglevel.DEBUG)).toBeFalsy();
|
||||
expect(needToLog(currentLevel, Loglevel.TRACE)).toBeFalsy();
|
||||
});
|
||||
it('currentLevel INFO', () => {
|
||||
const currentLevel = Loglevel.INFO;
|
||||
expect(needToLog(currentLevel, Loglevel.ERROR)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.WARN)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.INFO)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.DEBUG)).toBeFalsy();
|
||||
expect(needToLog(currentLevel, Loglevel.TRACE)).toBeFalsy();
|
||||
});
|
||||
it('currentLevel DEBUG', () => {
|
||||
const currentLevel = Loglevel.DEBUG;
|
||||
expect(needToLog(currentLevel, Loglevel.ERROR)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.WARN)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.INFO)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.DEBUG)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.TRACE)).toBeFalsy();
|
||||
});
|
||||
it('currentLevel TRACE', () => {
|
||||
const currentLevel = Loglevel.TRACE;
|
||||
expect(needToLog(currentLevel, Loglevel.ERROR)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.WARN)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.INFO)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.DEBUG)).toBeTruthy();
|
||||
expect(needToLog(currentLevel, Loglevel.TRACE)).toBeTruthy();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { Loglevel } from './loglevel.enum';
|
||||
|
||||
export function toArrayConfig(configValue: string, separator = ','): string[] {
|
||||
if (!configValue) {
|
||||
return [];
|
||||
|
@ -87,3 +89,27 @@ export function replaceAuthErrorsWithEnvironmentVariables(
|
|||
message = message.replace('.accessRole', '_ACCESS_ROLE');
|
||||
return message;
|
||||
}
|
||||
|
||||
export function needToLog(
|
||||
currentLoglevel: Loglevel,
|
||||
requestedLoglevel: Loglevel,
|
||||
): boolean {
|
||||
const current = transformLoglevelToInt(currentLoglevel);
|
||||
const requested = transformLoglevelToInt(requestedLoglevel);
|
||||
return current >= requested;
|
||||
}
|
||||
|
||||
function transformLoglevelToInt(loglevel: Loglevel): number {
|
||||
switch (loglevel) {
|
||||
case Loglevel.TRACE:
|
||||
return 5;
|
||||
case Loglevel.DEBUG:
|
||||
return 4;
|
||||
case Loglevel.INFO:
|
||||
return 3;
|
||||
case Loglevel.WARN:
|
||||
return 2;
|
||||
case Loglevel.ERROR:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue