var fsr = require('./index'); var assert = require('assert'); var fs = require('fs'); var tests = { testFileSizes: function () { [ ["3k",3072], ["5M",5242880], ["0.5G",536870912], ["0.5T",null], ["1mega",null], ["10 giga",null] ].map(function(fsize){ console.log(fsize[0],fsize[1],fsr.parseFileSize(fsize[0])); assert.ok(fsize[1] == fsr.parseFileSize(fsize[0])); }) }, testFrequency: function () { var opt1 = 'M544'; var opt2 = '5m'; var opt3 = '1H'; var opt4 = '3h'; var opt5 = 'daily'; var opt6 = 'test'; var opt7 = '3W'; var opt8 = '-1h'; var opt9 = '25h'; var opt10 = '24h'; var opt11 = '23h'; var opt12 = '59m'; var opt13 = '60m'; var opt14 = '61m'; var opt15 = '-1m'; assert.ok(!fsr.getFrequency(opt1)); var obj = fsr.getFrequency(opt2); console.log('obj =', obj); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'm'); assert.equal(obj.digit, 5); obj = fsr.getFrequency(opt3); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'h'); assert.equal(obj.digit, 1); obj = fsr.getFrequency(opt4); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'h'); assert.equal(obj.digit, 3); obj = fsr.getFrequency(opt5); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'daily'); assert.equal(obj.digit, undefined); obj = fsr.getFrequency(opt6); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'test'); assert.equal(obj.digit, 0); obj = fsr.getFrequency(opt7); assert.ok(obj === false); obj = fsr.getFrequency(opt8); assert.ok(obj === false); obj = fsr.getFrequency(opt9); assert.ok(obj === false); obj = fsr.getFrequency(opt10); console.log('obj =', obj); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'h'); assert.equal(obj.digit, 24); obj = fsr.getFrequency(opt11); console.log('obj =', obj); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'h'); assert.equal(obj.digit, 23); obj = fsr.getFrequency(opt12); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'm'); assert.equal(obj.digit, 59); obj = fsr.getFrequency(opt13); assert.ok(typeof obj == 'object'); assert.equal(obj.type, 'm'); assert.equal(obj.digit, 60); obj = fsr.getFrequency(opt14); assert.ok(obj === false); obj = fsr.getFrequency(opt15); assert.ok(obj === false); }, testGetDate: function () { var opt = {type: 'test', digit: 0}; var opt1 = {type: 'daily', digit: 0}; var opt2 = {type: 'h', digit: 1}; var opt3 = {type: 'm', digit: 30}; var opt4 = {type: 'm', digit: 45}; var opt5 = {type: 'h', digit: 3}; var opt6 = {type: 'm', digit: 5}; var format1 = 'YYYYMMDD'; var format2 = 'YYYY-MM-DD'; var format3 = 'YYYYMMDD.HHmmss'; var format4 = 'YYYY-MM-DD:HH:mm:ss'; console.log(fsr.getDate(opt)); console.log(fsr.getDate(opt1)); console.log(fsr.getDate(opt2)); console.log(fsr.getDate(opt3)); console.log(fsr.getDate(opt4)); console.log(fsr.getDate(opt5)); console.log(fsr.getDate(opt6)); console.log(fsr.getDate({type: 'test', digit: 0},format1)); console.log(fsr.getDate({type: 'test', digit: 0},format2)); console.log(fsr.getDate({type: 'test', digit: 0},format3)); console.log(fsr.getDate({type: 'test', digit: 0},format4)); }, testAuditSettings: function(){ var a = fsr.setAuditLog("10d","","/tmp/a/b/c/files/%DATE%/logs"); console.log(a) assert.equal(a.auditLog,"/tmp/a/b/c/files/.audit.json"); assert.equal(a.keep.amount,10); assert.equal(a.keep.days,true); assert.equal(a.files.length,0); a = fsr.setAuditLog("10","/tmp/a/b/log_audit_file.json","/tmp/a/b/c/files/%DATE%/logs1"); console.log(a) assert.equal(a.auditLog,"/tmp/a/b/log_audit_file.json"); assert.equal(a.keep.amount,10); assert.equal(a.keep.days,false); assert.equal(a.files.length,0); // var b = fsr.writeAuditLog({keep:{days:true,amount:10},auditLog: "/tmp/aa/a/e/a/b/c/a/b/b/ba_log.json",files:[{date:Date.now(), name:"/tmp/a/b/c.log"}]}); }, testGetStream: function() { return; var logdir = __dirname + '/log/'; var test = function() { var options1 = { filename: logdir + 'program1.log', frequency: '1m', verbose: true, date_format: 'YYYY-MM-DD' }; var options2 = { filename: logdir + 'program2.log', frequency: '1m', verbose: true}; var options3 = { filename: logdir + 'program3-%DATE%.log', frequency: '1m', verbose: true, date_format: 'YYYY-MM-DD'}; var options4 = { filename: logdir + 'program4-%DATE%.log', verbose: true, date_format: 'YYYY-MM-DD'}; var options5 = { filename: logdir + 'program5-%DATE%.log', verbose: true}; var stream1 = fsr.getStream(options1); stream1.write('formatted date'); var stream2 = fsr.getStream(options2); stream2.write('default date'); var stream3 = fsr.getStream(options3); stream3.write('date mid filename'); var stream4 = fsr.getStream(options4); stream4.write('date mid filename without rotation'); var stream5 = fsr.getStream(options5); stream5.write('dafault date mid filename without rotation'); var options = { filename: logdir + 'program-%DATE%.log', frequency: '1m', verbose: true, date_format: 'YYYY-MM-DD:HH:mm' }; var stream = fsr.getStream(options); process.__defineGetter__('stdout', function() { return stream;}); process.__defineGetter__('stderr', function() { return stream;}); setTimeout(function(){ stream.write('Foo bar'); }, 3000) setTimeout(function(){ stream.write('Foo bar'); }, 60000); } fs.exists(logdir, function(exists) { if(!exists) { console.log('Creating the log directory as one doesnt exist'); fs.mkdir(logdir, function(err) { if(err) { console.error('Trouble creating directory %s', logdir); throw err; } test(); }); }else{ test(); } }); }, } Object.keys(tests).forEach(function (test) { if (typeof tests[test] == 'function') { tests[test](); } });