54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import { Logger } from '../../source/utils/logger.ts';
|
|
import { expect, describe, test } from 'vitest';
|
|
|
|
/**
|
|
* Tests that a logger function is created and that it is a logger.
|
|
*/
|
|
const testLoggerCreatesLoggerFunction = (): void => {
|
|
const logger = new Logger('test');
|
|
expect(logger).toBeDefined();
|
|
expect(logger.namespace).toBe('test');
|
|
|
|
expect(Logger.isLogger(logger)).toBe(true);
|
|
};
|
|
|
|
/**
|
|
* Tests that a logger function is a logger.
|
|
*/
|
|
const testLoggerFunctionIsLogger = (): void => {
|
|
const logger = new Logger('test');
|
|
expect(Logger.isLogger(logger)).toBe(true);
|
|
};
|
|
|
|
/**
|
|
* Tests that a logger extends.
|
|
*/
|
|
const testLoggerExtends = (): void => {
|
|
const logger = new Logger('test');
|
|
const extendedLogger = logger.extend('extended');
|
|
expect(extendedLogger.namespace).toBe('test:extended');
|
|
expect(Logger.isLogger(extendedLogger)).toBe(true);
|
|
};
|
|
|
|
/**
|
|
* Tests that a logger is a logger.
|
|
*/
|
|
const testLoggerIsLogger = (): void => {
|
|
const logger = new Logger('test');
|
|
expect(Logger.isLogger(logger)).toBe(true);
|
|
|
|
// Test not a logger
|
|
const notALogger = [ 'not a logger', 123, true, false, null, undefined, NaN, Infinity, -Infinity ];
|
|
|
|
for (const item of notALogger) {
|
|
expect(Logger.isLogger(item)).toBe(false);
|
|
}
|
|
};
|
|
|
|
describe('Logger', () => {
|
|
test('creates a logger function', testLoggerCreatesLoggerFunction);
|
|
test('logger function is a logger', testLoggerFunctionIsLogger);
|
|
test('logger extends', testLoggerExtends);
|
|
test('logger is logger', testLoggerIsLogger);
|
|
});
|