mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
test: Clear test data folder before running tests
This commit is contained in:
parent
f419f2f28d
commit
6fc3f2cf4f
@ -39,7 +39,8 @@ module.exports = {
|
||||
'js',
|
||||
],
|
||||
testEnvironment: 'node',
|
||||
setupFilesAfterEnv: [ 'jest-rdf', '<rootDir>/test/util/SetupTests.ts' ],
|
||||
globalSetup: '<rootDir>/test/util/SetupTests.ts',
|
||||
setupFilesAfterEnv: [ 'jest-rdf' ],
|
||||
collectCoverage: false,
|
||||
// See https://github.com/matthieubosquet/ts-dpop/issues/13
|
||||
moduleNameMapper: {
|
||||
|
@ -1,12 +1,24 @@
|
||||
import { PassThrough } from 'stream';
|
||||
import type { Logger } from 'winston';
|
||||
import type * as Transport from 'winston-transport';
|
||||
import { WinstonLogger } from '../../../src/logging/WinstonLogger';
|
||||
import { WinstonLoggerFactory } from '../../../src/logging/WinstonLoggerFactory';
|
||||
|
||||
const now = new Date();
|
||||
jest.useFakeTimers();
|
||||
jest.setSystemTime(now);
|
||||
|
||||
describe('WinstonLoggerFactory', (): void => {
|
||||
let factory: WinstonLoggerFactory;
|
||||
let transport: jest.Mocked<Transport>;
|
||||
|
||||
beforeEach(async(): Promise<void> => {
|
||||
factory = new WinstonLoggerFactory('debug');
|
||||
|
||||
// Create a dummy log transport
|
||||
transport = new PassThrough({ objectMode: true }) as any;
|
||||
transport.write = jest.fn();
|
||||
transport.log = jest.fn();
|
||||
});
|
||||
|
||||
it('creates WinstonLoggers.', async(): Promise<void> => {
|
||||
@ -19,10 +31,6 @@ describe('WinstonLoggerFactory', (): void => {
|
||||
});
|
||||
|
||||
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
|
||||
@ -30,15 +38,39 @@ describe('WinstonLoggerFactory', (): void => {
|
||||
logger.log('debug', 'my message');
|
||||
|
||||
expect(transport.write).toHaveBeenCalledTimes(1);
|
||||
// Need to check level like this as it has color tags
|
||||
const { level } = transport.write.mock.calls[0][0];
|
||||
expect(transport.write).toHaveBeenCalledWith({
|
||||
label: 'MyLabel',
|
||||
level: expect.stringContaining('debug'),
|
||||
level,
|
||||
message: 'my message',
|
||||
timestamp: expect.any(String),
|
||||
metadata: expect.any(Object),
|
||||
timestamp: now.toISOString(),
|
||||
metadata: {},
|
||||
[Symbol.for('level')]: 'debug',
|
||||
[Symbol.for('splat')]: [ undefined ],
|
||||
[Symbol.for('message')]: expect.any(String),
|
||||
[Symbol.for('message')]: `${now.toISOString()} [MyLabel] {W-???} ${level}: my message`,
|
||||
});
|
||||
});
|
||||
|
||||
it('allows extra metadata when logging to indicate the thread.', async(): Promise<void> => {
|
||||
(factory as any).createTransports = (): any => [ transport ];
|
||||
|
||||
// Create logger, and log
|
||||
const logger = factory.createLogger('MyLabel');
|
||||
logger.log('debug', 'my message', { isPrimary: true, pid: 0 });
|
||||
|
||||
expect(transport.write).toHaveBeenCalledTimes(1);
|
||||
// Need to check level like this as it has color tags
|
||||
const { level } = transport.write.mock.calls[0][0];
|
||||
expect(transport.write).toHaveBeenCalledWith(expect.objectContaining({
|
||||
label: 'MyLabel',
|
||||
level,
|
||||
message: 'my message',
|
||||
timestamp: now.toISOString(),
|
||||
metadata: { isPrimary: true, pid: 0 },
|
||||
[Symbol.for('level')]: 'debug',
|
||||
[Symbol.for('splat')]: [ undefined ],
|
||||
[Symbol.for('message')]: `${now.toISOString()} [MyLabel] {Primary} ${level}: my message`,
|
||||
}));
|
||||
});
|
||||
});
|
||||
|
@ -1,17 +1,24 @@
|
||||
import { setGlobalLoggerFactory } from '../../src/logging/LogUtil';
|
||||
import { WinstonLoggerFactory } from '../../src/logging/WinstonLoggerFactory';
|
||||
import { getTestFolder, removeFolder } from '../integration/Config';
|
||||
|
||||
// Jest global setup requires a single function to be exported
|
||||
export default async function(): Promise<void> {
|
||||
// Set the main logger
|
||||
const level = process.env.LOGLEVEL ?? 'off';
|
||||
const loggerFactory = new WinstonLoggerFactory(level);
|
||||
setGlobalLoggerFactory(loggerFactory);
|
||||
const level = process.env.LOGLEVEL ?? 'off';
|
||||
const loggerFactory = new WinstonLoggerFactory(level);
|
||||
setGlobalLoggerFactory(loggerFactory);
|
||||
|
||||
// Also set the logger factory of transpiled JS modules
|
||||
// (which are instantiated by Components.js)
|
||||
try {
|
||||
// eslint-disable-next-line global-require, @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
|
||||
// Also set the logger factory of transpiled JS modules
|
||||
// (which are instantiated by Components.js)
|
||||
try {
|
||||
// eslint-disable-next-line global-require,@typescript-eslint/no-var-requires,@typescript-eslint/no-require-imports
|
||||
const dist = require('../../dist/logging/LogUtil');
|
||||
dist.setGlobalLoggerFactory(loggerFactory);
|
||||
} catch {
|
||||
} catch {
|
||||
// Ignore
|
||||
}
|
||||
|
||||
// Clean up the test folder to prevent issues with remaining files from previous tests
|
||||
await removeFolder(getTestFolder(''));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user