require('./setup'); var log = require('../model/log'); var _ = require('lodash'); var Promise = require('bluebird'); var fs = require('fs'); describe('Log Model', function() { var validData = {} var log_object = new log('./log_test/', {rotation: 1000, maxsize: 20000}); before(function(done) { validData = { path: "/test", method: "GET", request: { body: {test: true} }, response: { statusCode: 200, body: { success: true } } }; done(); }); it('should formatObject correctly', function(done) { var data = log_object._formatObject(validData); expect(data).eql(JSON.stringify(validData)); done(); }); it('should formatData correctly', function(done) { var data = log_object.formatData(validData).split(' '); expect(_.last(data).slice(0, _.last(data).length-1).trim().split('\r\n').join('')) .eql(JSON.stringify(validData).trim().split('\r\n').join('')); done(); }); it('should appendLog correctly', function(done) { log_object.append(validData); done(); }); it('should appendLog asynchronously correctly', function(done) { Promise.all(_.map(_.times(200, String), function(n) { return Promise.resolve(log_object.append(validData)); })) .then(function() { return Promise.delay(1100); }) .then(function() { Promise.all(_.map(_.times(200, String), function(n) { return Promise.resolve(log_object.append(validData)); })) }) .then(function() { done(); }); }); });