mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2026-07-12 22:59:00 +00:00
Improve tests.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
const chai = require('chai');
|
||||
const sinon = require('sinon');
|
||||
const Controller = require('../lib/controller');
|
||||
const settings = require('../lib/util/settings');
|
||||
const mqtt = require('../lib/mqtt');
|
||||
const utils = require('./utils');
|
||||
const sandbox = sinon.createSandbox();
|
||||
|
||||
describe('Controller', () => {
|
||||
let controller;
|
||||
let mqttPublish;
|
||||
|
||||
beforeEach(() => {
|
||||
utils.stubLogger(sandbox);
|
||||
sandbox.stub(settings, 'getDevice').callsFake((ieeeAddr) => {
|
||||
return {friendly_name: 'test'};
|
||||
});
|
||||
mqttPublish = sandbox.stub(mqtt.prototype, 'publish').callsFake(() => {});
|
||||
controller = new Controller();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
sandbox.restore();
|
||||
});
|
||||
|
||||
describe('Handling zigbee messages', () => {
|
||||
it('Should handle a zigbee message', () => {
|
||||
const device = {ieeeAddr: '0x12345678', modelId: 'TRADFRI bulb E27 CWS opal 600lm'};
|
||||
const message = utils.zigbeeMessage(device, 'genOnOff', 'devChange', {onOff: 1});
|
||||
controller.onZigbeeMessage(message);
|
||||
chai.assert.isTrue(mqttPublish.calledOnce);
|
||||
chai.assert.strictEqual(mqttPublish.getCall(0).args[1], JSON.stringify({state: 'ON'}));
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message when include_device_information is set', () => {
|
||||
sandbox.stub(settings, 'get').callsFake(() => {
|
||||
return {
|
||||
mqtt: {
|
||||
include_device_information: true,
|
||||
},
|
||||
advanced: {
|
||||
cache_state: false,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
const device = {ieeeAddr: '0x12345678', modelId: 'TRADFRI bulb E27 CWS opal 600lm'};
|
||||
const message = utils.zigbeeMessage(device, 'genOnOff', 'devChange', {onOff: 1});
|
||||
controller.onZigbeeMessage(message);
|
||||
chai.assert.isTrue(mqttPublish.calledOnce);
|
||||
chai.assert.strictEqual(
|
||||
mqttPublish.getCall(0).args[1],
|
||||
`{"state":"ON","device":{"ieeeAddr":"0x12345678","friendlyName":"test",` +
|
||||
`"modelId":"TRADFRI bulb E27 CWS opal 600lm"}}`
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user