Running tests on Windows caused this error:
```
B:\Projects\Parse Server\parse-server\spec\FileLoggerAdapter.spec.js:38
expect(results[0].message).toEqual('testing info logs');
^
TypeError: Cannot read property 'message' of undefined
at B:\Projects\Parse Server\parse-server\spec\FileLoggerAdapter.spec.js:38:26
at ParsePromise.<anonymous> (B:\Projects\Parse Server\parse-server\src\Adapters\Logger\FileLoggerAdapter.js:9:17440)
at ParsePromise.wrappedResolvedCallback (B:\Projects\Parse Server\parse-server\node_modules\parse\lib\node\ParsePromise.js:139:41)
at ParsePromise.resolve (B:\Projects\Parse Server\parse-server\node_modules\parse\lib\node\ParsePromise.js:72:36)
at resolveOne (B:\Projects\Parse Server\parse-server\node_modules\parse\lib\node\ParsePromise.js:471:29)
at ParsePromise.object.then.errors.(anonymous function) (B:\Projects\Parse Server\parse-server\node_modules\parse\lib\node\ParsePromise.js:480:13)
at ParsePromise.wrappedResolvedCallback (B:\Projects\Parse Server\parse-server\node_modules\parse\lib\node\ParsePromise.js:139:41)
at ParsePromise.resolve (B:\Projects\Parse Server\parse-server\node_modules\parse\lib\node\ParsePromise.js:72:36)
at ReadFileContext.callback (B:\Projects\Parse Server\parse-server\src\Adapters\Logger\FileLoggerAdapter.js:9:16189)
at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:303:13)
```
Rest of the tests could not be run as the test runner would break here. This change adds a check to fail when the FileLoggerAdapter returns an empty array from here: https://github.com/ParsePlatform/parse-server/blob/master/src/Adapters/Logger/FileLoggerAdapter.js#L191
Regarding the cause of the error itself, it is due to different filename separators in *nix and Windows. The FileLoggerAdapter would not save logs (have not tested this). This is a separate issue and should also be fixed.
76 lines
1.8 KiB
JavaScript
76 lines
1.8 KiB
JavaScript
var FileLoggerAdapter = require('../src/Adapters/Logger/FileLoggerAdapter').FileLoggerAdapter;
|
|
var Parse = require('parse/node').Parse;
|
|
var request = require('request');
|
|
var fs = require('fs');
|
|
|
|
var LOGS_FOLDER = './test_logs/';
|
|
|
|
var deleteFolderRecursive = function(path) {
|
|
if( fs.existsSync(path) ) {
|
|
fs.readdirSync(path).forEach(function(file,index){
|
|
var curPath = path + "/" + file;
|
|
if(fs.lstatSync(curPath).isDirectory()) { // recurse
|
|
deleteFolderRecursive(curPath);
|
|
} else { // delete file
|
|
fs.unlinkSync(curPath);
|
|
}
|
|
});
|
|
fs.rmdirSync(path);
|
|
}
|
|
};
|
|
|
|
describe('info logs', () => {
|
|
|
|
afterEach((done) => {
|
|
deleteFolderRecursive(LOGS_FOLDER);
|
|
done();
|
|
});
|
|
|
|
it("Verify INFO logs", (done) => {
|
|
var fileLoggerAdapter = new FileLoggerAdapter({
|
|
logsFolder: LOGS_FOLDER
|
|
});
|
|
fileLoggerAdapter.info('testing info logs', () => {
|
|
fileLoggerAdapter.query({
|
|
size: 1,
|
|
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', () => {
|
|
|
|
afterEach((done) => {
|
|
deleteFolderRecursive(LOGS_FOLDER);
|
|
done();
|
|
});
|
|
|
|
it("Verify ERROR logs", (done) => {
|
|
var fileLoggerAdapter = new FileLoggerAdapter();
|
|
fileLoggerAdapter.error('testing error logs', () => {
|
|
fileLoggerAdapter.query({
|
|
size: 1,
|
|
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();
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|