Files
kami-parse-server/spec/WinstonLoggerAdapter.spec.js
Arthur Cinader 87da62bca2 Logger: Fix timestamp and format (#5571)
* remove no-op config of logger

* add a test to check on the timestamp

* add a test to verify that we
get non json console loggging by default

* configure transports to include
timestamps in files

* Add failing test to confirm that WinstonLoggerAdapter
is not filtering on level.

* actually fix the test to refelect the facth that this isn't the problem

* Remove bogus date ranges that are now failing
becuase we have timestamps.
2019-05-09 14:58:54 -05:00

133 lines
3.7 KiB
JavaScript

'use strict';
const WinstonLoggerAdapter = require('../lib/Adapters/Logger/WinstonLoggerAdapter')
.WinstonLoggerAdapter;
const request = require('../lib/request');
describe('info logs', () => {
it('Verify INFO logs', done => {
const winstonLoggerAdapter = new WinstonLoggerAdapter();
winstonLoggerAdapter.log('info', 'testing info logs with 1234');
winstonLoggerAdapter.query(
{
from: new Date(Date.now() - 500),
size: 100,
level: 'info',
order: 'desc',
},
results => {
if (results.length == 0) {
fail('The adapter should return non-empty results');
} else {
const log = results.find(
x => x.message === 'testing info logs with 1234'
);
expect(log.level).toEqual('info');
}
// Check the error log
// Regression #2639
winstonLoggerAdapter.query(
{
from: new Date(Date.now() - 200),
size: 100,
level: 'error',
},
errors => {
const log = errors.find(
x => x.message === 'testing info logs with 1234'
);
expect(log).toBeUndefined();
done();
}
);
}
);
});
});
describe('error logs', () => {
it('Verify ERROR logs', done => {
const winstonLoggerAdapter = new WinstonLoggerAdapter();
winstonLoggerAdapter.log('error', 'testing error logs');
winstonLoggerAdapter.query(
{
from: new Date(Date.now() - 500),
size: 100,
level: 'error',
},
results => {
if (results.length == 0) {
fail('The adapter should return non-empty results');
done();
} else {
expect(results[0].message).toEqual('testing error logs');
done();
}
}
);
});
it('Should filter on query', done => {
const winstonLoggerAdapter = new WinstonLoggerAdapter();
winstonLoggerAdapter.log('error', 'testing error logs');
winstonLoggerAdapter.query(
{
from: new Date(Date.now() - 500),
size: 100,
level: 'error',
},
results => {
expect(results.filter(e => e.level !== 'error').length).toBe(0);
done();
}
);
});
});
describe('verbose logs', () => {
it('mask sensitive information in _User class', done => {
reconfigureServer({ verbose: true })
.then(() => createTestUser())
.then(() => {
const winstonLoggerAdapter = new WinstonLoggerAdapter();
return winstonLoggerAdapter.query({
from: new Date(Date.now() - 500),
size: 100,
level: 'verbose',
});
})
.then(results => {
const logString = JSON.stringify(results);
expect(logString.match(/\*\*\*\*\*\*\*\*/g).length).not.toBe(0);
expect(logString.match(/moon-y/g)).toBe(null);
const headers = {
'X-Parse-Application-Id': 'test',
'X-Parse-REST-API-Key': 'rest',
};
request({
headers: headers,
url: 'http://localhost:8378/1/login?username=test&password=moon-y',
}).then(() => {
const winstonLoggerAdapter = new WinstonLoggerAdapter();
return winstonLoggerAdapter
.query({
from: new Date(Date.now() - 500),
size: 100,
level: 'verbose',
})
.then(results => {
const logString = JSON.stringify(results);
expect(logString.match(/\*\*\*\*\*\*\*\*/g).length).not.toBe(0);
expect(logString.match(/moon-y/g)).toBe(null);
done();
});
});
})
.catch(err => {
fail(JSON.stringify(err));
done();
});
});
});