mirror of
				https://github.com/CommunitySolidServer/CommunitySolidServer.git
				synced 2024-10-03 14:55:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { PassThrough } from 'stream';
 | |
| import type { Logger } from 'winston';
 | |
| import { WinstonLogger } from '../../../src/logging/WinstonLogger';
 | |
| import { WinstonLoggerFactory } from '../../../src/logging/WinstonLoggerFactory';
 | |
| 
 | |
| describe('WinstonLoggerFactory', (): void => {
 | |
|   let factory: WinstonLoggerFactory;
 | |
|   beforeEach(async(): Promise<void> => {
 | |
|     factory = new WinstonLoggerFactory('debug');
 | |
|   });
 | |
| 
 | |
|   it('creates WinstonLoggers.', async(): Promise<void> => {
 | |
|     const logger = factory.createLogger('MyLabel');
 | |
|     expect(logger).toBeInstanceOf(WinstonLogger);
 | |
|     const innerLogger: Logger = (logger as any).logger;
 | |
|     expect(innerLogger.level).toBe('debug');
 | |
|     expect(innerLogger.format).toBeTruthy();
 | |
|     expect(innerLogger.transports).toHaveLength(1);
 | |
|   });
 | |
| 
 | |
|   it('allows WinstonLoggers to be invoked.', async(): Promise<void> => {
 | |
|     // Create a dummy log transport
 | |
|     const transport: any = new PassThrough({ objectMode: true });
 | |
|     transport.write = jest.fn();
 | |
|     transport.log = jest.fn();
 | |
|     (factory as any).createTransports = (): any => [ transport ];
 | |
| 
 | |
|     // Create logger, and log
 | |
|     const logger = factory.createLogger('MyLabel');
 | |
|     logger.log('debug', 'my message');
 | |
| 
 | |
|     expect(transport.write).toHaveBeenCalledTimes(1);
 | |
|     expect(transport.write).toHaveBeenCalledWith({
 | |
|       label: 'MyLabel',
 | |
|       level: expect.stringContaining('debug'),
 | |
|       message: 'my message',
 | |
|       timestamp: expect.any(String),
 | |
|       [Symbol.for('level')]: 'debug',
 | |
|       [Symbol.for('splat')]: [ undefined ],
 | |
|       [Symbol.for('message')]: expect.any(String),
 | |
|     });
 | |
|   });
 | |
| });
 | 
