From 04d8522b3ba95f83e0b569373726e4da7a1ece13 Mon Sep 17 00:00:00 2001 From: koenkk Date: Mon, 4 Dec 2023 10:29:09 +0100 Subject: [PATCH] fix(ignore): fix dd1e0db407f80add7355879823cf519ae869a7f6 --- lib/extension/homeassistant.ts | 4 ++-- lib/extension/otaUpdate.ts | 2 +- scripts/generateNewSupportedDevices.js | 12 ------------ test/externalConverters.test.js | 26 +++++++++++++------------- test/group.test.js | 2 +- test/homeassistant.test.js | 2 +- test/onEvent.test.js | 2 +- test/publish.test.js | 4 ++-- 8 files changed, 21 insertions(+), 33 deletions(-) delete mode 100644 scripts/generateNewSupportedDevices.js diff --git a/lib/extension/homeassistant.ts b/lib/extension/homeassistant.ts index 36cb596cb..56b86f82e 100644 --- a/lib/extension/homeassistant.ts +++ b/lib/extension/homeassistant.ts @@ -170,8 +170,8 @@ export default class HomeAssistant extends Extension { } if (hasColorTemp) { - const colorTemps = exposes.map((expose) => expose.features - .filter(isNumericExposeFeature).find((e) => e.name === 'color_temp')); + const colorTemps = exposes.map((expose) => expose.features.find((e) => e.name === 'color_temp')) + .filter((e) => e).filter(isNumericExposeFeature); const max = Math.min(...colorTemps.map((e) => e.value_max)); const min = Math.max(...colorTemps.map((e) => e.value_min)); discoveryEntry.discovery_payload.max_mireds = max; diff --git a/lib/extension/otaUpdate.ts b/lib/extension/otaUpdate.ts index 8556b7e33..fd0f3dd33 100644 --- a/lib/extension/otaUpdate.ts +++ b/lib/extension/otaUpdate.ts @@ -79,7 +79,7 @@ export default class OTAUpdate extends Extension { logger.debug(`Device '${data.device.name}' requested OTA`); const automaticOTACheckDisabled = settings.get().ota.disable_automatic_update_check; - let supportsOTA = data.device.definition.hasOwnProperty('ota'); + let supportsOTA = !!data.device.definition.ota; if (supportsOTA && !automaticOTACheckDisabled) { // When a device does a next image request, it will usually do it a few times after each other // with only 10 - 60 seconds inbetween. It doesn't make sense to check for a new update diff --git a/scripts/generateNewSupportedDevices.js b/scripts/generateNewSupportedDevices.js deleted file mode 100644 index 433123b5a..000000000 --- a/scripts/generateNewSupportedDevices.js +++ /dev/null @@ -1,12 +0,0 @@ -const fs = require('fs'); -const filename = process.argv[2]; -const text = fs.readFileSync(filename, 'utf8'); -const zigbeeHerdsmanConverters = require('zigbee-herdsman-converters'); - - -for (const line of text.split('\n')) { - const [modelNumber, user] = line.split(',').map((t) => t.trim()); - const model = zigbeeHerdsmanConverters.devices.find((d) => d.model === modelNumber); - if (!model) throw new Error(`${line} does not exist`); - console.log(`- \`${modelNumber}\` ${model.vendor} ${model.description} (${user})`); -} diff --git a/test/externalConverters.test.js b/test/externalConverters.test.js index 9fecd1787..5775910ba 100644 --- a/test/externalConverters.test.js +++ b/test/externalConverters.test.js @@ -10,9 +10,9 @@ const flushPromises = require('./lib/flushPromises'); const path = require('path'); const fs = require('fs'); -zigbeeHerdsmanConverters.addDeviceDefinition = jest.fn(); +zigbeeHerdsmanConverters.addDefinition = jest.fn(); -const mocksClear = [zigbeeHerdsmanConverters.addDeviceDefinition, zigbeeHerdsman.permitJoin, +const mocksClear = [zigbeeHerdsmanConverters.addDefinition, zigbeeHerdsman.permitJoin, mockExit, MQTT.end, zigbeeHerdsman.stop, logger.debug, MQTT.publish, MQTT.connect, zigbeeHerdsman.devices.bulb_color.removeFromNetwork, zigbeeHerdsman.devices.bulb.removeFromNetwork, logger.error, @@ -67,15 +67,15 @@ describe('Loads external converters', () => { it('Does not load external converters', async () => { settings.set(['external_converters'], []); await resetExtension(); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenCalledTimes(0); + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenCalledTimes(0); }); it('Loads external converters', async () => { fs.copyFileSync(path.join(__dirname, 'assets', 'mock-external-converter.js'), path.join(data.mockDir, 'mock-external-converter.js')); settings.set(['external_converters'], ['mock-external-converter.js']); await resetExtension(); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenCalledTimes(1); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenCalledWith({ + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenCalledTimes(1); + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenCalledWith({ mock: true, zigbeeModel: ['external_converter_device'], vendor: 'external', @@ -91,8 +91,8 @@ describe('Loads external converters', () => { fs.copyFileSync(path.join(__dirname, 'assets', 'mock-external-converter-multiple.js'), path.join(data.mockDir, 'mock-external-converter-multiple.js')); settings.set(['external_converters'], ['mock-external-converter-multiple.js']); await resetExtension(); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenCalledTimes(2); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenNthCalledWith(1, { + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenCalledTimes(2); + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenNthCalledWith(1, { mock: 1, model: 'external_converters_device_1', zigbeeModel: ['external_converter_device_1'], @@ -102,7 +102,7 @@ describe('Loads external converters', () => { toZigbee: [], exposes: [] }); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenNthCalledWith(2, { + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenNthCalledWith(2, { mock: 2, model: 'external_converters_device_2', zigbeeModel: ['external_converter_device_2'], @@ -117,8 +117,8 @@ describe('Loads external converters', () => { it('Loads external converters from package', async () => { settings.set(['external_converters'], ['mock-external-converter-module']); await resetExtension(); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenCalledTimes(1); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenCalledWith({ + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenCalledTimes(1); + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenCalledWith({ mock: true }); }); @@ -126,11 +126,11 @@ describe('Loads external converters', () => { it('Loads multiple external converters from package', async () => { settings.set(['external_converters'], ['mock-multiple-external-converter-module']); await resetExtension(); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenCalledTimes(2); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenNthCalledWith(1, { + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenCalledTimes(2); + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenNthCalledWith(1, { mock: 1 }); - expect(zigbeeHerdsmanConverters.addDeviceDefinition).toHaveBeenNthCalledWith(2, { + expect(zigbeeHerdsmanConverters.addDefinition).toHaveBeenNthCalledWith(2, { mock: 2 }); }); diff --git a/test/group.test.js b/test/group.test.js index d3fa86361..2259cf20c 100644 --- a/test/group.test.js +++ b/test/group.test.js @@ -41,7 +41,7 @@ describe('Groups', () => { settings.reRead(); MQTT.publish.mockClear(); zigbeeHerdsman.groups.gledopto_group.command.mockClear(); - zigbeeHerdsmanConverters.toZigbeeConverters.__clearStore__(); + zigbeeHerdsmanConverters.toZigbee.__clearStore__(); controller.state.state = {}; }) diff --git a/test/homeassistant.test.js b/test/homeassistant.test.js index b91d12ccb..3ae1e8ca6 100644 --- a/test/homeassistant.test.js +++ b/test/homeassistant.test.js @@ -51,7 +51,7 @@ describe('HomeAssistant extension', () => { it('Should not have duplicate type/object_ids in a mapping', () => { const duplicated = []; - require('zigbee-herdsman-converters').devices.forEach((d) => { + require('zigbee-herdsman-converters').definitions.forEach((d) => { const exposes = typeof d.exposes == 'function' ? d.exposes() : d.exposes; const device = {definition: d, isDevice: () => true, options: {}, exposes: () => exposes, zh: {endpoints: []}}; const configs = extension.getConfigs(device); diff --git a/test/onEvent.test.js b/test/onEvent.test.js index be6903aa4..853124a80 100644 --- a/test/onEvent.test.js +++ b/test/onEvent.test.js @@ -76,6 +76,6 @@ describe('On event', () => { await zigbeeHerdsman.events.deviceAnnounce({device}); await flushPromises(); expect(zigbeeHerdsmanConverters.onEvent).toHaveBeenCalledTimes(1); - expect(zigbeeHerdsmanConverters.onEvent).toHaveBeenCalledWith('deviceAnnounce', {device}, device, settings.getDevice(device.ieeeAddr), {}); + expect(zigbeeHerdsmanConverters.onEvent).toHaveBeenCalledWith('deviceAnnounce', {device}, device); }); }); diff --git a/test/publish.test.js b/test/publish.test.js index 4fdf34413..8b3927d45 100644 --- a/test/publish.test.js +++ b/test/publish.test.js @@ -50,7 +50,7 @@ describe('Publish', () => { g.command.mockClear(); }); - zigbeeHerdsmanConverters.toZigbeeConverters.__clearStore__(); + zigbeeHerdsmanConverters.toZigbee.__clearStore__(); }); afterAll(async () => { @@ -1343,7 +1343,7 @@ describe('Publish', () => { await MQTT.events.message('zigbee2mqtt/bulb_color/set', stringify({state: 'ON', brightness: 20, transition: 0.0})); await flushPromises(); - zigbeeHerdsmanConverters.toZigbeeConverters.__clearStore__(); + zigbeeHerdsmanConverters.toZigbee.__clearStore__(); await MQTT.events.message('zigbee2mqtt/bulb_color/set', stringify({"state": "ON", "transition": 1.0})); await flushPromises();