From 419e24134f90bfa6e523912a8c59b434e624642a Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Wed, 4 Dec 2024 22:22:22 +0100 Subject: [PATCH 1/3] fix(ignore): Fix external converter loading --- lib/controller.ts | 2 +- test/extensions/externalConverters.test.ts | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/controller.ts b/lib/controller.ts index 11825482aa..b2cd3f2b03 100644 --- a/lib/controller.ts +++ b/lib/controller.ts @@ -97,6 +97,7 @@ export class Controller { ]; this.extensions = [ + new ExtensionExternalConverters(...this.extensionArgs), new ExtensionOnEvent(...this.extensionArgs), new ExtensionBridge(...this.extensionArgs), new ExtensionPublish(...this.extensionArgs), @@ -107,7 +108,6 @@ export class Controller { new ExtensionBind(...this.extensionArgs), new ExtensionOTAUpdate(...this.extensionArgs), new ExtensionExternalExtensions(...this.extensionArgs), - new ExtensionExternalConverters(...this.extensionArgs), new ExtensionAvailability(...this.extensionArgs), ]; diff --git a/test/extensions/externalConverters.test.ts b/test/extensions/externalConverters.test.ts index f64fec9f84..f61cc76afc 100644 --- a/test/extensions/externalConverters.test.ts +++ b/test/extensions/externalConverters.test.ts @@ -6,6 +6,7 @@ import {devices, mockController as mockZHController, returnDevices} from '../moc import type Device from '../../lib/model/device'; +import assert from 'assert'; import fs from 'fs'; import path from 'path'; @@ -74,7 +75,7 @@ describe('Extension: ExternalConverters', () => { data.writeDefaultConfiguration(); data.writeDefaultState(); settings.reRead(); - returnDevices.push(devices.external_converter_device.ieeeAddr); + returnDevices.push(devices.external_converter_device.ieeeAddr, devices.coordinator.ieeeAddr); controller = new Controller(jest.fn(), jest.fn()); }); @@ -147,6 +148,21 @@ describe('Extension: ExternalConverters', () => { description: 'external', }), ); + + const bridgeDevices = mockMQTT.publishAsync.mock.calls.find((c) => c[0] === 'zigbee2mqtt/bridge/devices'); + assert(bridgeDevices); + expect(JSON.parse(bridgeDevices[1])).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + model_id: 'external_converter_device', + supported: true, + definition: expect.objectContaining({ + description: 'external', + model: 'external_converter_device', + }), + }), + ]), + ); }); it('saves and removes from MQTT', async () => { From 1707d36be694b9083944fb80b07fc1d51d65f770 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Wed, 4 Dec 2024 22:28:50 +0100 Subject: [PATCH 2/3] remove assert --- test/extensions/externalConverters.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/extensions/externalConverters.test.ts b/test/extensions/externalConverters.test.ts index f61cc76afc..fb845b1924 100644 --- a/test/extensions/externalConverters.test.ts +++ b/test/extensions/externalConverters.test.ts @@ -95,7 +95,7 @@ describe('Extension: ExternalConverters', () => { expect(mockMQTT.publishAsync).toHaveBeenCalledWith('zigbee2mqtt/bridge/converters', stringify([]), {retain: true, qos: 0}); }); - it('loads from folder', async () => { + it('onlythisloads from folder', async () => { useAssets(); await controller.start(); @@ -149,9 +149,9 @@ describe('Extension: ExternalConverters', () => { }), ); - const bridgeDevices = mockMQTT.publishAsync.mock.calls.find((c) => c[0] === 'zigbee2mqtt/bridge/devices'); - assert(bridgeDevices); - expect(JSON.parse(bridgeDevices[1])).toEqual( + const bridgeDevices = mockMQTT.publishAsync.mock.calls.filter((c) => c[0] === 'zigbee2mqtt/bridge/devices'); + expect(bridgeDevices.length).toBe(1); + expect(JSON.parse(bridgeDevices[0][1])).toEqual( expect.arrayContaining([ expect.objectContaining({ model_id: 'external_converter_device', From 809e2b69ad7ab640fa510e4608487f0a0c78ff43 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Wed, 4 Dec 2024 22:29:10 +0100 Subject: [PATCH 3/3] cleanup --- test/extensions/externalConverters.test.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/extensions/externalConverters.test.ts b/test/extensions/externalConverters.test.ts index fb845b1924..08e16f61db 100644 --- a/test/extensions/externalConverters.test.ts +++ b/test/extensions/externalConverters.test.ts @@ -6,7 +6,6 @@ import {devices, mockController as mockZHController, returnDevices} from '../moc import type Device from '../../lib/model/device'; -import assert from 'assert'; import fs from 'fs'; import path from 'path'; @@ -95,7 +94,7 @@ describe('Extension: ExternalConverters', () => { expect(mockMQTT.publishAsync).toHaveBeenCalledWith('zigbee2mqtt/bridge/converters', stringify([]), {retain: true, qos: 0}); }); - it('onlythisloads from folder', async () => { + it('loads from folder', async () => { useAssets(); await controller.start();