* Add unique indexing * Add unique indexing for username/email * WIP * Finish unique indexes * Notes on how to upgrade to 2.3.0 safely * index on unique-indexes: c454180 Revert "Log objects rather than JSON stringified objects (#1922)" * reconfigure username/email tests * Start dealing with test shittyness * Remove tests for files that we are removing * most tests passing * fix failing test * Make specific server config for tests async * Fix more tests * fix more tests * Fix another test * fix more tests * Fix email validation * move some stuff around * Destroy server to ensure all connections are gone * Fix broken cloud code * Save callback to variable * no need to delete non existant cloud * undo * Fix all tests where connections are left open after server closes. * Fix issues caused by missing gridstore adapter * Update guide for 2.3.0 and fix final tests * use strict * don't use features that won't work in node 4 * Fix syntax error * Fix typos * Add duplicate finding command * Update 2.3.0.md
103 lines
2.9 KiB
JavaScript
103 lines
2.9 KiB
JavaScript
'use strict';
|
|
|
|
var FileLoggerAdapter = require('../src/Adapters/Logger/FileLoggerAdapter').FileLoggerAdapter;
|
|
var Parse = require('parse/node').Parse;
|
|
var request = require('request');
|
|
|
|
describe('info logs', () => {
|
|
|
|
it("Verify INFO logs", (done) => {
|
|
var fileLoggerAdapter = new FileLoggerAdapter();
|
|
fileLoggerAdapter.info('testing info logs', () => {
|
|
fileLoggerAdapter.query({
|
|
from: new Date(Date.now() - 500),
|
|
size: 100,
|
|
level: 'info'
|
|
}, (results) => {
|
|
if(results.length == 0) {
|
|
fail('The adapter should return non-empty results');
|
|
done();
|
|
} else {
|
|
expect(results[0].message).toEqual('testing info logs');
|
|
done();
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('error logs', () => {
|
|
|
|
it("Verify ERROR logs", (done) => {
|
|
var fileLoggerAdapter = new FileLoggerAdapter();
|
|
fileLoggerAdapter.error('testing error logs', () => {
|
|
fileLoggerAdapter.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();
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('verbose logs', () => {
|
|
|
|
it("mask sensitive information in _User class", (done) => {
|
|
reconfigureServer({ verbose: true })
|
|
.then(() => createTestUser())
|
|
.then(() => {
|
|
let fileLoggerAdapter = new FileLoggerAdapter();
|
|
return fileLoggerAdapter.query({
|
|
from: new Date(Date.now() - 500),
|
|
size: 100,
|
|
level: 'verbose'
|
|
});
|
|
}).then((results) => {
|
|
expect(results[1].message.includes('"password": "********"')).toEqual(true);
|
|
var headers = {
|
|
'X-Parse-Application-Id': 'test',
|
|
'X-Parse-REST-API-Key': 'rest'
|
|
};
|
|
request.get({
|
|
headers: headers,
|
|
url: 'http://localhost:8378/1/login?username=test&password=moon-y'
|
|
}, (error, response, body) => {
|
|
let fileLoggerAdapter = new FileLoggerAdapter();
|
|
return fileLoggerAdapter.query({
|
|
from: new Date(Date.now() - 500),
|
|
size: 100,
|
|
level: 'verbose'
|
|
}).then((results) => {
|
|
expect(results[1].message.includes('password=********')).toEqual(true);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
it("should not mask information in non _User class", (done) => {
|
|
let obj = new Parse.Object('users');
|
|
obj.set('password', 'pw');
|
|
obj.save().then(() => {
|
|
let fileLoggerAdapter = new FileLoggerAdapter();
|
|
return fileLoggerAdapter.query({
|
|
from: new Date(Date.now() - 500),
|
|
size: 100,
|
|
level: 'verbose'
|
|
});
|
|
}).then((results) => {
|
|
expect(results[1].message.includes('"password": "pw"')).toEqual(true);
|
|
done();
|
|
});
|
|
});
|
|
});
|