123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- 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]();
- }
- });
|