Apply jest-codemods

`chai` ELIMINATED
This commit is contained in:
qm3ster authored and Koen Kanters committed 2019-03-10 13:32:36 +01:00
1 parent 6a4073b305
commit acbab01b7e
8 files changed
+555 -550

No files matched your search

-1
View File
@@ -49,7 +49,6 @@
"zive": "*"
},
"devDependencies": {
"chai": "*",
"eslint": "*",
"eslint-config-google": "*",
"eslint-plugin-jest": "^22.3.0",
+13 -20
View File
@@ -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
View File
@@ -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();
});
+3 -4
View File
@@ -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
View File
File diff suppressed because it is too large. Load diff
+37 -36
View File
@@ -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
View File
@@ -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
View File
@@ -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);
});
});
});