require('./setup'); var alarm = require('../model/alarm'); var _ = require('lodash'); var Promise = require('bluebird'); var fs = require('fs'); describe('Alarm Model', function() { var testData1, testData2; var testAString = "helloworld"; var aRequestFunction1 = function(data, aString){ testData1 = data + "," + aString; }; var aRequestFunction2 = function(data, aString1, aString2){ testData2 = aString1 + "," + data + "," + aString2; }; var validData = {} data = { rotation: 5000, external: [ { fn: aRequestFunction1 ,args: [testAString] }, { fn: aRequestFunction2 ,args: [testAString, testAString] } ] }; var alarm_object = new alarm('./log_test/', data); before(function(done) { validData = ['lksdjfjklsdlfjll']; done(); }); it('should appendAlarm asynchronously correctly', function(done) { Promise.all(_.map(_.times(200, String), function(n) { return Promise.resolve(alarm_object.appendAlarm(validData)); })) .then(function() { return Promise.delay(1100); }) .then(function() { Promise.all(_.map(_.times(200, String), function(n) { return Promise.resolve(alarm_object.appendAlarm(validData)); })) }) .then(function() { expect(testData1.split(",")[1]).eql(testAString) expect(testData2.split(",")[0]).eql(testAString) expect(testData2.split(",")[2]).eql(testAString) }) .then(function() { done(); }); }); });