test(logger): add tests for info, warning, error, and critical methods

This commit is contained in:
Tiara Rodney 2026-03-13 22:56:01 +01:00
parent 50df6b4c37
commit d95c8d37da
No known key found for this signature in database
GPG key ID: 5CD8EC1D46106723

View file

@ -124,32 +124,60 @@ describe('Logger', () => {
}); });
}); });
describe('debug', () => { describe('level methods', () => {
test('invokes handler when level is DEBUG', () => { let logger: Logger;
const logger = new Logger('test', DEBUG); let emitted: LogRecord[];
const emitted: LogRecord[] = [];
class TestHandler extends Handler { class TestHandler extends Handler {
emit(record: LogRecord) { emitted.push(record) } emit(record: LogRecord) { emitted.push(record) }
} }
beforeEach(() => {
logger = new Logger('test', DEBUG);
emitted = [];
logger.addHandler(new TestHandler(DEBUG)); logger.addHandler(new TestHandler(DEBUG));
logger.debug('test message');
expect(emitted.length).toBe(1);
expect(emitted[0].scope).toBe('test');
}); });
test('does not invoke handler when level is above DEBUG', () => { test('debug emits at DEBUG level', () => {
const logger = new Logger('test', WARNING); logger.debug('msg');
const emitted: LogRecord[] = []; expect(emitted.length).toBe(1);
expect(emitted[0].levelno).toBe(DEBUG);
});
class TestHandler extends Handler { test('info emits at INFO level', () => {
emit(record: LogRecord) { emitted.push(record) } logger.info('msg');
} expect(emitted.length).toBe(1);
expect(emitted[0].levelno).toBe(INFO);
});
logger.addHandler(new TestHandler(DEBUG)); test('warning emits at WARNING level', () => {
logger.debug('test message'); logger.warning('msg');
expect(emitted.length).toBe(1);
expect(emitted[0].levelno).toBe(WARNING);
});
test('error emits at ERROR level', () => {
logger.error('msg');
expect(emitted.length).toBe(1);
expect(emitted[0].levelno).toBe(ERROR);
});
test('critical emits at CRITICAL level', () => {
logger.critical('msg');
expect(emitted.length).toBe(1);
expect(emitted[0].levelno).toBe(CRITICAL);
});
test('level methods respect effective level', () => {
logger.setLevel(ERROR);
logger.clear();
logger.debug('no');
logger.info('no');
logger.warning('no');
expect(emitted.length).toBe(0); expect(emitted.length).toBe(0);
logger.error('yes');
logger.critical('yes');
expect(emitted.length).toBe(2);
}); });
}); });