mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2026-10-23 06:12:23 +00:00
Apply jest-codemods
`chai` ELIMINATED
This commit is contained in:
1 parent
6a4073b305
commit
acbab01b7e
8 files changed
+555
-550
No files matched your search
@@ -49,7 +49,6 @@
|
||||
"zive": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chai": "*",
|
||||
"eslint": "*",
|
||||
"eslint-config-google": "*",
|
||||
"eslint-plugin-jest": "^22.3.0",
|
||||
|
||||
+13
-20
@@ -1,4 +1,3 @@
|
||||
const assert = require('chai').assert;
|
||||
const sinon = require('sinon');
|
||||
const Controller = require('../lib/controller');
|
||||
const settings = require('../lib/util/settings');
|
||||
@@ -35,11 +34,8 @@ describe('Controller', () => {
|
||||
const device = {ieeeAddr: '0x12345678', modelId: 'TRADFRI bulb E27 CWS opal 600lm'};
|
||||
const message = utils.zigbeeMessage(device, 'genOnOff', 'devChange', {onOff: 1}, 1);
|
||||
controller.onZigbeeMessage(message);
|
||||
assert.isTrue(mqttPublish.calledOnce);
|
||||
assert.strictEqual(
|
||||
mqttPublish.getCall(0).args[1],
|
||||
JSON.stringify({state: 'ON'})
|
||||
);
|
||||
expect(mqttPublish.calledOnce).toBe(true);
|
||||
expect(mqttPublish.getCall(0).args[1]).toBe(JSON.stringify({state: 'ON'}));
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message when include_device_information is set', () => {
|
||||
@@ -60,22 +56,19 @@ describe('Controller', () => {
|
||||
const device = {ieeeAddr: '0x12345678', modelId: 'TRADFRI bulb E27 CWS opal 600lm'};
|
||||
const message = utils.zigbeeMessage(device, 'genOnOff', 'devChange', {onOff: 1}, 1);
|
||||
controller.onZigbeeMessage(message);
|
||||
assert.isTrue(mqttPublish.calledOnce);
|
||||
assert.strictEqual(
|
||||
mqttPublish.getCall(0).args[1],
|
||||
expect(mqttPublish.calledOnce).toBe(true);
|
||||
expect(mqttPublish.getCall(0).args[1]).toBe(
|
||||
`{"state":"ON","device":{"ieeeAddr":"0x12345678","friendlyName":"test",` +
|
||||
`"manufName":"IKEA","modelId":"TRADFRI bulb E27 CWS opal 600lm"}}`
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
it('Should output to json by default', () => {
|
||||
const payload = {temperature: 1, humidity: 2};
|
||||
controller.publishEntityState('0x12345678', payload);
|
||||
assert.isTrue(mqttPublish.calledOnce);
|
||||
assert.deepEqual(
|
||||
JSON.parse(mqttPublish.getCall(0).args[1]),
|
||||
payload
|
||||
);
|
||||
expect(mqttPublish.calledOnce).toBe(true);
|
||||
expect(JSON.parse(mqttPublish.getCall(0).args[1])).toEqual(payload);
|
||||
});
|
||||
|
||||
it('Should output to attribute', () => {
|
||||
@@ -95,11 +88,11 @@ describe('Controller', () => {
|
||||
|
||||
const payload = {temperature: 1, humidity: 2};
|
||||
controller.publishEntityState('0x12345678', payload);
|
||||
assert.isTrue(mqttPublish.calledTwice);
|
||||
assert.deepEqual(mqttPublish.getCall(0).args[0], 'test/temperature');
|
||||
assert.deepEqual(mqttPublish.getCall(0).args[1], '1');
|
||||
assert.deepEqual(mqttPublish.getCall(1).args[0], 'test/humidity');
|
||||
assert.deepEqual(mqttPublish.getCall(1).args[1], '2');
|
||||
expect(mqttPublish.calledTwice).toBe(true);
|
||||
expect(mqttPublish.getCall(0).args[0]).toEqual('test/temperature');
|
||||
expect(mqttPublish.getCall(0).args[1]).toEqual('1');
|
||||
expect(mqttPublish.getCall(1).args[0]).toEqual('test/humidity');
|
||||
expect(mqttPublish.getCall(1).args[1]).toEqual('2');
|
||||
});
|
||||
});
|
||||
});
|
||||
+2
-3
@@ -1,4 +1,3 @@
|
||||
const assert = require('chai').assert;
|
||||
const data = require('../lib/util/data.js');
|
||||
const path = require('path');
|
||||
|
||||
@@ -7,7 +6,7 @@ describe('Data', () => {
|
||||
it('Should return correct path', () => {
|
||||
const expected = path.normalize(path.join(__dirname, '..', 'data'));
|
||||
const actual = data.getPath();
|
||||
assert.strictEqual(actual, expected);
|
||||
expect(actual).toBe(expected);
|
||||
});
|
||||
|
||||
it('Should return correct path when ZIGBEE2MQTT_DATA set', () => {
|
||||
@@ -15,7 +14,7 @@ describe('Data', () => {
|
||||
process.env.ZIGBEE2MQTT_DATA = expected;
|
||||
data._reload();
|
||||
const actual = data.getPath();
|
||||
assert.strictEqual(actual, expected);
|
||||
expect(actual).toBe(expected);
|
||||
delete process.env.ZIGBEE2MQTT_DATA;
|
||||
data._reload();
|
||||
});
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
const assert = require('chai').assert;
|
||||
const sinon = require('sinon');
|
||||
const Availability = require('../lib/extension/deviceAvailability');
|
||||
const utils = require('./utils');
|
||||
@@ -22,7 +21,7 @@ describe('Availability', () => {
|
||||
type: 'Router',
|
||||
};
|
||||
|
||||
assert.isTrue(availability.isPingable(device));
|
||||
expect(availability.isPingable(device)).toBe(true);
|
||||
});
|
||||
|
||||
it('Battery device should not be a pingable device', () => {
|
||||
@@ -31,7 +30,7 @@ describe('Availability', () => {
|
||||
type: 'EndDevice',
|
||||
};
|
||||
|
||||
assert.isFalse(availability.isPingable(device));
|
||||
expect(availability.isPingable(device)).toBe(false);
|
||||
});
|
||||
|
||||
it('E11-G13 should be a pingable device', () => {
|
||||
@@ -42,7 +41,7 @@ describe('Availability', () => {
|
||||
manufId: 4448,
|
||||
};
|
||||
|
||||
assert.isTrue(availability.isPingable(device));
|
||||
expect(availability.isPingable(device)).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
+402
-388
File diff suppressed because it is too large.
Load diff
+37
-36
@@ -1,4 +1,3 @@
|
||||
const assert = require('chai').assert;
|
||||
const sinon = require('sinon');
|
||||
const DeviceReceive = require('../lib/extension/deviceReceive');
|
||||
const settings = require('../lib/util/settings');
|
||||
@@ -35,24 +34,24 @@ describe('DeviceReceive', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
const message = utils.zigbeeMessage(device, 'genOnOff', 'attReport', {onOff: 1}, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG11LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {click: 'single'});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({click: 'single'});
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message which uses ep (left)', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
const message = utils.zigbeeMessage(device, 'genOnOff', 'attReport', {onOff: 1}, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {click: 'left'});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({click: 'left'});
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message which uses ep (right)', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
const message = utils.zigbeeMessage(device, 'genOnOff', 'attReport', {onOff: 1}, 2);
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {click: 'right'});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({click: 'right'});
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message with default precision', () => {
|
||||
@@ -61,8 +60,8 @@ describe('DeviceReceive', () => {
|
||||
device, 'msTemperatureMeasurement', 'attReport', {measuredValue: -85}, 1
|
||||
);
|
||||
deviceReceive.onZigbeeMessage(message, device, WSDCGQ11LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {temperature: -0.85});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({temperature: -0.85});
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message with 1 precision', () => {
|
||||
@@ -74,8 +73,8 @@ describe('DeviceReceive', () => {
|
||||
device, 'msTemperatureMeasurement', 'attReport', {measuredValue: -85}, 1
|
||||
);
|
||||
deviceReceive.onZigbeeMessage(message, device, WSDCGQ11LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {temperature: -0.8});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({temperature: -0.8});
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message with 0 precision', () => {
|
||||
@@ -87,8 +86,8 @@ describe('DeviceReceive', () => {
|
||||
device, 'msTemperatureMeasurement', 'attReport', {measuredValue: -85}, 1
|
||||
);
|
||||
deviceReceive.onZigbeeMessage(message, device, WSDCGQ11LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {temperature: -1});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({temperature: -1});
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message with 1 precision when set via device_options', () => {
|
||||
@@ -110,9 +109,10 @@ describe('DeviceReceive', () => {
|
||||
device, 'msTemperatureMeasurement', 'attReport', {measuredValue: -85}, 1
|
||||
);
|
||||
deviceReceive.onZigbeeMessage(message, device, WSDCGQ11LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {temperature: -0.8});
|
||||
});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({temperature: -0.8});
|
||||
}
|
||||
);
|
||||
|
||||
it('Should handle a zigbee message with 2 precision when overrides device_options', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
@@ -135,44 +135,45 @@ describe('DeviceReceive', () => {
|
||||
device, 'msTemperatureMeasurement', 'attReport', {measuredValue: -85}, 1
|
||||
);
|
||||
deviceReceive.onZigbeeMessage(message, device, WSDCGQ11LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], {temperature: -0.85});
|
||||
});
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual({temperature: -0.85});
|
||||
}
|
||||
);
|
||||
|
||||
it('Should handle a zigbee message with voltage 3010', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
const message = utils.zigbeeMessage(device, 'genBasic', 'attReport', {'65281': {'1': 3010}}, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
const expected = {battery: 100, voltage: 3010};
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], expected);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message with voltage 2850', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
const message = utils.zigbeeMessage(device, 'genBasic', 'attReport', {'65281': {'1': 2850}}, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
const expected = {battery: 35, voltage: 2850};
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], expected);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message with voltage 2650', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
const message = utils.zigbeeMessage(device, 'genBasic', 'attReport', {'65281': {'1': 2650}}, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
const expected = {battery: 14, voltage: 2650};
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], expected);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should handle a zigbee message with voltage 2000', () => {
|
||||
const device = {ieeeAddr: '0x12345678'};
|
||||
const message = utils.zigbeeMessage(device, 'genBasic', 'attReport', {'65281': {'1': 2000}}, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
const expected = {battery: 0, voltage: 2000};
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], expected);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should publish 1 message when converted twice', () => {
|
||||
@@ -182,9 +183,9 @@ describe('DeviceReceive', () => {
|
||||
};
|
||||
const message = utils.zigbeeMessage(device, 'genBasic', 'attReport', payload, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, RTCGQ11LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
const expected = {'battery': 100, 'illuminance': 381, 'voltage': 3045};
|
||||
assert.deepEqual(publishEntityState.getCall(0).args[1], expected);
|
||||
expect(publishEntityState.getCall(0).args[1]).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should publish no message when converted without result', () => {
|
||||
@@ -192,7 +193,7 @@ describe('DeviceReceive', () => {
|
||||
const payload = {'9999': {'1': 3045}};
|
||||
const message = utils.zigbeeMessage(device, 'genBasic', 'attReport', payload, 1);
|
||||
deviceReceive.onZigbeeMessage(message, device, RTCGQ11LM);
|
||||
assert.isTrue(publishEntityState.notCalled);
|
||||
expect(publishEntityState.notCalled).toBe(true);
|
||||
});
|
||||
|
||||
it('Should publish last_seen epoch', () => {
|
||||
@@ -206,8 +207,8 @@ describe('DeviceReceive', () => {
|
||||
};
|
||||
});
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.equal(typeof publishEntityState.getCall(0).args[1].last_seen, 'number');
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(typeof publishEntityState.getCall(0).args[1].last_seen).toEqual('number');
|
||||
});
|
||||
|
||||
it('Should publish last_seen ISO_8601', () => {
|
||||
@@ -221,8 +222,8 @@ describe('DeviceReceive', () => {
|
||||
};
|
||||
});
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.equal(typeof publishEntityState.getCall(0).args[1].last_seen, 'string');
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(typeof publishEntityState.getCall(0).args[1].last_seen).toEqual('string');
|
||||
});
|
||||
|
||||
it('Should publish last_seen ISO_8601_local', () => {
|
||||
@@ -236,8 +237,8 @@ describe('DeviceReceive', () => {
|
||||
};
|
||||
});
|
||||
deviceReceive.onZigbeeMessage(message, device, WXKG02LM);
|
||||
assert.isTrue(publishEntityState.calledOnce);
|
||||
assert.equal(typeof publishEntityState.getCall(0).args[1].last_seen, 'string');
|
||||
expect(publishEntityState.calledOnce).toBe(true);
|
||||
expect(typeof publishEntityState.getCall(0).args[1].last_seen).toEqual('string');
|
||||
});
|
||||
});
|
||||
});
|
||||
+71
-71
@@ -1,6 +1,5 @@
|
||||
const devices = require('zigbee-shepherd-converters').devices;
|
||||
const HomeassistantExtension = require('../lib/extension/homeassistant');
|
||||
const assert = require('chai').assert;
|
||||
const sinon = require('sinon');
|
||||
const settings = require('../lib/util/settings');
|
||||
|
||||
@@ -33,8 +32,9 @@ describe('HomeAssistant extension', () => {
|
||||
}
|
||||
});
|
||||
|
||||
assert.strictEqual(missing.length, 0, `Missing HomeAssistant mapping for: ${missing.join(', ')}`);
|
||||
});
|
||||
expect(missing).toHaveLength(0);
|
||||
}
|
||||
);
|
||||
|
||||
it('Should discover devices', () => {
|
||||
let payload = null;
|
||||
@@ -43,7 +43,7 @@ describe('HomeAssistant extension', () => {
|
||||
});
|
||||
|
||||
homeassistant.discover('0x12345678', WSDCGQ11LM, false);
|
||||
assert.equal(mqtt.publish.callCount, 5);
|
||||
expect(mqtt.publish.callCount).toEqual(5);
|
||||
|
||||
// 1
|
||||
payload = {
|
||||
@@ -64,10 +64,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(0).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(0).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(0).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(0).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(0).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(0).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(0).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(0).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 2
|
||||
payload = {
|
||||
@@ -88,10 +88,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(1).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(1).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(1).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(1).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(1).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(1).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(1).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(1).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 3
|
||||
payload = {
|
||||
@@ -112,10 +112,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(2).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(2).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(2).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(2).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(2).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(2).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(2).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(2).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 4
|
||||
payload = {
|
||||
@@ -136,10 +136,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(3).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(3).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(3).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(3).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(3).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(3).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(3).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(3).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 5
|
||||
payload = {
|
||||
@@ -159,10 +159,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(4).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(4).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(4).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(4).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(4).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(4).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(4).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(4).args[4]).toEqual('homeassistant');
|
||||
});
|
||||
|
||||
it('Should discover devices with precision', () => {
|
||||
@@ -177,7 +177,7 @@ describe('HomeAssistant extension', () => {
|
||||
});
|
||||
|
||||
homeassistant.discover('0x12345678', WSDCGQ11LM, false);
|
||||
assert.equal(mqtt.publish.callCount, 5);
|
||||
expect(mqtt.publish.callCount).toEqual(5);
|
||||
|
||||
// 1
|
||||
payload = {
|
||||
@@ -198,10 +198,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(0).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(0).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(0).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(0).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(0).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(0).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(0).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(0).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 2
|
||||
payload = {
|
||||
@@ -222,10 +222,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(1).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(1).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(1).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(1).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(1).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(1).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(1).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(1).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 3
|
||||
payload = {
|
||||
@@ -246,10 +246,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(2).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(2).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(2).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(2).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(2).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(2).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(2).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(2).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 4
|
||||
payload = {
|
||||
@@ -270,10 +270,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(3).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(3).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(3).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(3).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(3).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(3).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(3).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(3).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 5
|
||||
payload = {
|
||||
@@ -293,10 +293,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(4).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(4).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(4).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(4).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(4).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(4).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(4).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(4).args[4]).toEqual('homeassistant');
|
||||
});
|
||||
|
||||
it('Should discover devices with overriden user configuration', () => {
|
||||
@@ -315,7 +315,7 @@ describe('HomeAssistant extension', () => {
|
||||
});
|
||||
|
||||
homeassistant.discover('0x12345678', WSDCGQ11LM, false);
|
||||
assert.equal(mqtt.publish.callCount, 5);
|
||||
expect(mqtt.publish.callCount).toEqual(5);
|
||||
|
||||
// 1
|
||||
payload = {
|
||||
@@ -338,10 +338,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(0).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(0).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(0).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(0).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(0).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(0).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(0).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(0).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 2
|
||||
payload = {
|
||||
@@ -364,10 +364,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(1).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(1).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(1).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(1).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(1).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(1).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(1).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(1).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 3
|
||||
payload = {
|
||||
@@ -390,10 +390,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(2).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(2).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(2).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(2).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(2).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(2).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(2).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(2).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 4
|
||||
payload = {
|
||||
@@ -416,10 +416,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(3).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(3).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(3).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(3).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(3).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(3).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(3).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(3).args[4]).toEqual('homeassistant');
|
||||
|
||||
// 5
|
||||
payload = {
|
||||
@@ -441,10 +441,10 @@ describe('HomeAssistant extension', () => {
|
||||
'availability_topic': 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(4).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(4).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(4).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(4).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(4).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(4).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(4).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(4).args[4]).toEqual('homeassistant');
|
||||
});
|
||||
|
||||
it('Should discover devices with cover_position', () => {
|
||||
@@ -454,7 +454,7 @@ describe('HomeAssistant extension', () => {
|
||||
});
|
||||
|
||||
homeassistant.discover('0x12345678', SV01, false);
|
||||
assert.equal(mqtt.publish.callCount, 5);
|
||||
expect(mqtt.publish.callCount).toEqual(5);
|
||||
|
||||
// 1
|
||||
payload = {
|
||||
@@ -475,9 +475,9 @@ describe('HomeAssistant extension', () => {
|
||||
availability_topic: 'zigbee2mqtt/bridge/state',
|
||||
};
|
||||
|
||||
assert.deepEqual(JSON.parse(mqtt.publish.getCall(0).args[1]), payload);
|
||||
assert.deepEqual(mqtt.publish.getCall(0).args[2], {retain: true, qos: 0});
|
||||
assert.equal(mqtt.publish.getCall(0).args[3], null);
|
||||
assert.equal(mqtt.publish.getCall(0).args[4], 'homeassistant');
|
||||
expect(JSON.parse(mqtt.publish.getCall(0).args[1])).toEqual(payload);
|
||||
expect(mqtt.publish.getCall(0).args[2]).toEqual({retain: true, qos: 0});
|
||||
expect(mqtt.publish.getCall(0).args[3]).toBeNull();
|
||||
expect(mqtt.publish.getCall(0).args[4]).toEqual('homeassistant');
|
||||
});
|
||||
});
|
||||
+27
-27
@@ -1,4 +1,3 @@
|
||||
const assert = require('chai').assert;
|
||||
const sinon = require('sinon');
|
||||
const objectAssignDeep = require('object-assign-deep');
|
||||
|
||||
@@ -16,8 +15,8 @@ describe('Settings', () => {
|
||||
const read = (file) => fs.readYaml(file);
|
||||
|
||||
const files = new Map();
|
||||
// eslint-disable-next-line no-undef
|
||||
(typeof jest === 'undefined' ? before : beforeAll)(()=>{
|
||||
|
||||
beforeAll(() => {
|
||||
sinon.stub(fs, 'readYaml').callsFake((file) => {
|
||||
if (files.has(file)) return objectAssignDeep.noMutate(files.get(file));
|
||||
throw new Error(`Fake file not found: ${file}`);
|
||||
@@ -36,8 +35,7 @@ describe('Settings', () => {
|
||||
files.clear();
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-undef
|
||||
(typeof jest === 'undefined' ? after : afterAll)(() => {
|
||||
afterAll(() => {
|
||||
fs.readYaml.restore();
|
||||
fs.readYamlIfExists.restore();
|
||||
fs.writeYaml.restore();
|
||||
@@ -47,7 +45,7 @@ describe('Settings', () => {
|
||||
it('Should return default settings', () => {
|
||||
write(configurationFile, {});
|
||||
const s = settings.get();
|
||||
assert.deepEqual(s, settings._getDefaults());
|
||||
expect(s).toEqual(settings._getDefaults());
|
||||
});
|
||||
|
||||
it('Should return settings', () => {
|
||||
@@ -55,7 +53,7 @@ describe('Settings', () => {
|
||||
const s = settings.get();
|
||||
const expected = settings._getDefaults();
|
||||
expected.permit_join = true;
|
||||
assert.deepEqual(s, expected);
|
||||
expect(s).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should add devices', () => {
|
||||
@@ -72,7 +70,7 @@ describe('Settings', () => {
|
||||
},
|
||||
};
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should read devices', () => {
|
||||
@@ -93,7 +91,7 @@ describe('Settings', () => {
|
||||
retain: false,
|
||||
};
|
||||
|
||||
assert.deepEqual(device, expected);
|
||||
expect(device).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should read devices form a separate file', () => {
|
||||
@@ -117,7 +115,7 @@ describe('Settings', () => {
|
||||
retain: false,
|
||||
};
|
||||
|
||||
assert.deepEqual(device, expected);
|
||||
expect(device).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should add devices to a separate file', () => {
|
||||
@@ -137,7 +135,7 @@ describe('Settings', () => {
|
||||
|
||||
settings.addDevice('0x1234');
|
||||
|
||||
assert.deepEqual(read(configurationFile), {devices: 'devices.yaml'});
|
||||
expect(read(configurationFile)).toEqual({devices: 'devices.yaml'});
|
||||
|
||||
const expected = {
|
||||
'0x12345678': {
|
||||
@@ -150,7 +148,7 @@ describe('Settings', () => {
|
||||
},
|
||||
};
|
||||
|
||||
assert.deepEqual(read(devicesFile), expected);
|
||||
expect(read(devicesFile)).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should add devices to a separate file if devices.yaml doesnt exist', () => {
|
||||
@@ -162,7 +160,7 @@ describe('Settings', () => {
|
||||
|
||||
settings.addDevice('0x1234');
|
||||
|
||||
assert.deepEqual(read(configurationFile), {devices: 'devices.yaml'});
|
||||
expect(read(configurationFile)).toEqual({devices: 'devices.yaml'});
|
||||
|
||||
const expected = {
|
||||
'0x1234': {
|
||||
@@ -171,8 +169,9 @@ describe('Settings', () => {
|
||||
},
|
||||
};
|
||||
|
||||
assert.deepEqual(read(devicesFile), expected);
|
||||
});
|
||||
expect(read(devicesFile)).toEqual(expected);
|
||||
}
|
||||
);
|
||||
|
||||
it('Should add and remove devices to a separate file if devices.yaml doesnt exist', () => {
|
||||
const contentConfiguration = {
|
||||
@@ -182,13 +181,14 @@ describe('Settings', () => {
|
||||
write(configurationFile, contentConfiguration);
|
||||
|
||||
settings.addDevice('0x1234');
|
||||
assert.deepEqual(read(configurationFile), {devices: 'devices.yaml'});
|
||||
expect(read(configurationFile)).toEqual({devices: 'devices.yaml'});
|
||||
|
||||
settings.removeDevice('0x1234');
|
||||
assert.deepEqual(read(configurationFile), {devices: 'devices.yaml'});
|
||||
expect(read(configurationFile)).toEqual({devices: 'devices.yaml'});
|
||||
|
||||
assert.deepEqual(read(devicesFile), {});
|
||||
});
|
||||
expect(read(devicesFile)).toEqual({});
|
||||
}
|
||||
);
|
||||
|
||||
it('Should read groups', () => {
|
||||
const content = {
|
||||
@@ -206,7 +206,7 @@ describe('Settings', () => {
|
||||
friendly_name: '123',
|
||||
};
|
||||
|
||||
assert.deepEqual(group, expected);
|
||||
expect(group).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Should read groups form a separate file', () => {
|
||||
@@ -228,7 +228,7 @@ describe('Settings', () => {
|
||||
friendly_name: '123',
|
||||
};
|
||||
|
||||
assert.deepEqual(group, expected);
|
||||
expect(group).toEqual(expected);
|
||||
});
|
||||
|
||||
it('Combine everything! groups and devices from separate file :)', () => {
|
||||
@@ -251,11 +251,11 @@ describe('Settings', () => {
|
||||
groups: 'groups.yaml',
|
||||
};
|
||||
|
||||
assert.deepEqual(read(configurationFile), expectedConfiguration);
|
||||
expect(read(configurationFile)).toEqual(expectedConfiguration);
|
||||
|
||||
settings.addDevice('0x1234');
|
||||
|
||||
assert.deepEqual(read(configurationFile), expectedConfiguration);
|
||||
expect(read(configurationFile)).toEqual(expectedConfiguration);
|
||||
|
||||
const expectedDevice = {
|
||||
'0x1234': {
|
||||
@@ -264,23 +264,23 @@ describe('Settings', () => {
|
||||
},
|
||||
};
|
||||
|
||||
assert.deepEqual(read(devicesFile), expectedDevice);
|
||||
expect(read(devicesFile)).toEqual(expectedDevice);
|
||||
|
||||
const group = settings.getGroup('1');
|
||||
const expectedGroup = {
|
||||
friendly_name: '123',
|
||||
};
|
||||
|
||||
assert.deepEqual(group, expectedGroup);
|
||||
expect(group).toEqual(expectedGroup);
|
||||
|
||||
assert.deepEqual(read(configurationFile), expectedConfiguration);
|
||||
expect(read(configurationFile)).toEqual(expectedConfiguration);
|
||||
|
||||
const expectedDevice2 = {
|
||||
friendly_name: '0x1234',
|
||||
retain: false,
|
||||
};
|
||||
|
||||
assert.deepEqual(settings.getDevice('0x1234'), expectedDevice2);
|
||||
expect(settings.getDevice('0x1234')).toEqual(expectedDevice2);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user