Skip to content

Commit 30ba3d3

Browse files
committed
Adds tests for logging configuration
1 parent 39a37c9 commit 30ba3d3

File tree

2 files changed

+48
-3
lines changed

2 files changed

+48
-3
lines changed

spec/Logger.spec.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ class TestTransport extends winston.Transport {
88
}
99

1010
describe('Logger', () => {
11-
// Test is excluded as will be refactored
1211
it('should add transport', () => {
1312
const testTransport = new (TestTransport)({
1413
name: 'test'
@@ -19,4 +18,45 @@ describe('Logger', () => {
1918
expect(testTransport.log).toHaveBeenCalled();
2019
logging.removeTransport(testTransport);
2120
});
21+
22+
it('should have files transports', (done) => {
23+
reconfigureServer().then(() => {
24+
let transports = logging.logger.transports;
25+
let transportKeys = Object.keys(transports);
26+
expect(transportKeys.length).toBe(2);
27+
done();
28+
});
29+
});
30+
31+
it('should disable files logs', (done) => {
32+
reconfigureServer({
33+
logsFolder: null
34+
}).then(() => {
35+
let transports = logging.logger.transports;
36+
let transportKeys = Object.keys(transports);
37+
expect(transportKeys.length).toBe(0);
38+
done();
39+
});
40+
});
41+
42+
it('should enable JSON logs', (done) => {
43+
// Force console transport
44+
process.env.VERBOSE=1;
45+
reconfigureServer({
46+
logsFolder: null,
47+
jsonLogs: true
48+
}).then(() => {
49+
let spy = spyOn(process.stdout, 'write');
50+
logging.logger.info('hi', {key: 'value'});
51+
expect(process.stdout.write).toHaveBeenCalled();
52+
var firstLog = process.stdout.write.calls.first().args[0];
53+
expect(firstLog).toEqual(JSON.stringify({key: 'value', level: 'info', message: 'hi' })+'\n');
54+
delete process.env.VERBOSE;
55+
return reconfigureServer({
56+
jsonLogs: false
57+
});
58+
}).then(() => {
59+
done();
60+
});
61+
});
2262
});

src/Adapters/Logger/WinstonLogger.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function updateTransports(options) {
1414
if (_.isNull(options.dirname)) {
1515
delete transports['parse-server'];
1616
delete transports['parse-server-error'];
17-
} else if (!_.isUndefined(options.dirname)) {
17+
} else {
1818
transports['parse-server'] = new (DailyRotateFile)(
1919
Object.assign({
2020
filename: 'parse-server.info',
@@ -34,6 +34,8 @@ function updateTransports(options) {
3434
colorize: true,
3535
name: 'console'
3636
}, options));
37+
} else {
38+
delete transports['console'];
3739
}
3840
}
3941
// Mount the additional transports
@@ -86,7 +88,10 @@ export function removeTransport(transport) {
8688
delete transports[transportName];
8789
logger.configure({
8890
transports: _.values(transports)
89-
})
91+
});
92+
_.remove(additionalTransports, (transport) => {
93+
return transport.name === transportName;
94+
});
9095
}
9196

9297
export { logger, addTransport, configureLogger, removeTransport };

0 commit comments

Comments
 (0)