diff --git a/lib/zigbee.js b/lib/zigbee.js index 7b651f02..c4fe1e23 100644 --- a/lib/zigbee.js +++ b/lib/zigbee.js @@ -224,7 +224,7 @@ class Zigbee extends events.EventEmitter { logger.info(`Rejecting joining non-whitelisted device '${ieeeAddr}'`); return false; } - } else { + } else if (settings.get().ban.length > 0) { if (settings.get().ban.includes(ieeeAddr)) { logger.info(`Rejecting joining banned device '${ieeeAddr}'`); return false; @@ -232,6 +232,8 @@ class Zigbee extends events.EventEmitter { logger.info(`Accepting joining non-banned device '${ieeeAddr}'`); return true; } + } else { + return true; } } } diff --git a/test/controller.test.js b/test/controller.test.js index d94dbbfa..08ca0540 100644 --- a/test/controller.test.js +++ b/test/controller.test.js @@ -291,6 +291,13 @@ describe('Controller', () => { expect(await handler(device.ieeeAddr)).toBe(true); }); + it('acceptJoiningDeviceHandler accept when no ban and whitelist', async () => { + await controller.start(); + const device = zigbeeHerdsman.devices.bulb; + const handler = zigbeeHerdsman.constructor.mock.calls[0][0].acceptJoiningDeviceHandler; + expect(await handler(device.ieeeAddr)).toBe(true); + }); + it('Shouldnt crash when two device join events are received', async () => { await controller.start(); const device = zigbeeHerdsman.devices.bulb;