示例#1
0
function newNode(configOverrides) {
    const config = {
        name: 'test-node',
        suspended: false,
        ontime: '11:45',
        ontopic: 'on topic',
        onpayload: 'on payload',
        onoffset: '',
        onrandomoffset: 0,
        offtime: 'dawn',
        offtopic: 'off topic',
        offpayload: 'off payload',
        offoffset: '5',
        offrandomoffset: 1,
        lat: 51.33411,
        lon: -0.83716,
        unittest: true,
        mon: true,
        tue: true,
        wed: true,
        thu: true,
        fri: true,
        sat: true,
        sun: true
    };
    if (configOverrides) {
        _.assign(config, configOverrides);
    }
    return mock(nodeRedModule, config);
}
function runBetween(start, end, startOffset, endOffset) {
    const node = mock(nodeRedModule, {
        startTime: start,
        endTime: end,
        startOffset: startOffset,
        endOffset: endOffset,
        lat: 51.33411,
        lon: -0.83716,
        unitTest: true
    });

    const counts = { o1: 0, o2: 0 };
    node.send = function(msg) {
        if (msg[0]) counts.o1++;
        if (msg[1]) counts.o2++;
    };

    const time = moment('2016-01-01');

    node.now = function() {
        return time.clone();
    };

    for (let i = 0; i < 7 * 24; ++i) {
        time.add(1, 'hour');
        node.emit('input', {});
    }
    return counts;
}