alarm.js 1.48 KB
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();
      });
  });

});