piglow-system
Version:
several visualisation utilities for your system
163 lines (115 loc) • 5.42 kB
JavaScript
var expect = require('chai').expect;
var sinon = require('sinon');
var sandboxed = require('sandboxed-module');
var testUtils = require('./util/util');
describe('integrationSystem', function() {
it('should run', function() {
var clock = sinon.useFakeTimers();
var loadMock = testUtils.createModuleMock('load');
var cpuMock = testUtils.createModuleMock('cpu');
var memoryMock = testUtils.createModuleMock('memory');
var temperatureMock = testUtils.createModuleMock('temperature');
var System = sandboxed.require('../lib/modules/System', {
requires: {
'./Memory': memoryMock,
'./Load': loadMock,
'./Cpu': cpuMock,
'./Temperature': temperatureMock
}
});
var mySystem = new System({}, [loadMock, cpuMock, memoryMock, temperatureMock]);
mySystem.start();
clock.tick(40000);
expect(memoryMock.start.callCount).to.equal(1);
expect(memoryMock.stop.callCount).to.equal(1);
expect(cpuMock.start.callCount).to.equal(1);
expect(cpuMock.stop.callCount).to.equal(1);
expect(loadMock.start.callCount).to.equal(1);
expect(loadMock.stop.callCount).to.equal(0);
expect(temperatureMock.start.callCount).to.equal(1);
expect(temperatureMock.stop.callCount).to.equal(1);
clock.restore();
});
it('should run with a switchInterval', function() {
var clock = sinon.useFakeTimers();
var loadMock = testUtils.createModuleMock('load');
var cpuMock = testUtils.createModuleMock('cpu');
var memoryMock = testUtils.createModuleMock('memory');
var temperatureMock = testUtils.createModuleMock('temperature');
var System = sandboxed.require('../lib/modules/System', {
requires: {
'./Memory': memoryMock,
'./Load': loadMock,
'./Cpu': cpuMock,
'./Temperature': temperatureMock
}
});
var mySystem = new System({switchInterval: 5000}, [loadMock, cpuMock, memoryMock, temperatureMock]);
mySystem.start();
clock.tick(30000);
expect(memoryMock.start.callCount).to.equal(2);
expect(memoryMock.stop.callCount).to.equal(1);
expect(cpuMock.start.callCount).to.equal(2);
expect(cpuMock.stop.callCount).to.equal(2);
expect(loadMock.start.callCount).to.equal(1);
expect(loadMock.stop.callCount).to.equal(1);
expect(temperatureMock.start.callCount).to.equal(1);
expect(temperatureMock.stop.callCount).to.equal(1);
clock.restore();
});
it('should run with a pauseInterval', function() {
var clock = sinon.useFakeTimers();
var loadMock = testUtils.createModuleMock('load');
var cpuMock = testUtils.createModuleMock('cpu');
var memoryMock = testUtils.createModuleMock('memory');
var temperatureMock = testUtils.createModuleMock('temperature');
var System = sandboxed.require('../lib/modules/System', {
requires: {
'./Memory': memoryMock,
'./Load': loadMock,
'./Cpu': cpuMock,
'./Temperature': temperatureMock
}
});
var mySystem = new System({pause: 5000}, [loadMock, cpuMock, memoryMock, temperatureMock]);
mySystem.start();
clock.tick(30000);
expect(memoryMock.start.callCount).to.equal(1);
expect(memoryMock.stop.callCount).to.equal(1);
expect(cpuMock.start.callCount).to.equal(1);
expect(cpuMock.stop.callCount).to.equal(1);
expect(loadMock.start.callCount).to.equal(0);
expect(loadMock.stop.callCount).to.equal(0);
expect(temperatureMock.start.callCount).to.equal(1);
expect(temperatureMock.stop.callCount).to.equal(0);
clock.restore();
});
it('should run and stop', function() {
var clock = sinon.useFakeTimers();
var loadMock = testUtils.createModuleMock('load');
var cpuMock = testUtils.createModuleMock('cpu');
var memoryMock = testUtils.createModuleMock('memory');
var temperatureMock = testUtils.createModuleMock('temperature');
var System = sandboxed.require('../lib/modules/System', {
requires: {
'./Memory': memoryMock,
'./Load': loadMock,
'./Cpu': cpuMock,
'./Temperature': temperatureMock
}
});
var mySystem = new System({pause: 5000}, [loadMock, cpuMock, memoryMock, temperatureMock]);
mySystem.start();
clock.tick(30000);
mySystem.stop();
expect(cpuMock.start.callCount).to.equal(1);
expect(cpuMock.stop.callCount).to.equal(1);
expect(memoryMock.start.callCount).to.equal(1);
expect(memoryMock.stop.callCount).to.equal(1);
expect(temperatureMock.start.callCount).to.equal(1);
expect(temperatureMock.stop.callCount).to.equal(1);
expect(loadMock.start.callCount).to.equal(0);
expect(loadMock.stop.callCount).to.equal(0);
clock.restore();
});
});