Also remove group from herdsman on remove. #2265

This commit is contained in:
Koen Kanters
2020-02-22 15:53:05 +01:00
parent df67c429bf
commit ad59ff57bc
3 changed files with 8 additions and 3 deletions
+4 -1
View File
@@ -253,7 +253,10 @@ class BridgeConfig extends BaseExtension {
removeGroup(topic, message) {
const name = message;
settings.removeGroup(name);
const entity = this.zigbee.resolveEntity(message);
assert(entity && entity.type === 'group', `Group '${message}' does not exist`);
settings.removeGroup(message);
entity.group.removeFromDatabase();
logger.info(`Removed group '${name}'`);
}
+3 -2
View File
@@ -267,10 +267,11 @@ describe('Bridge config', () => {
});
it('Should allow to remove groups', async () => {
settings.addGroup('to_be_removed')
MQTT.events.message('zigbee2mqtt/bridge/config/remove_group', 'to_be_removed');
const group = zigbeeHerdsman.groups.group_1;
MQTT.events.message('zigbee2mqtt/bridge/config/remove_group', 'group_1');
await flushPromises();
expect(settings.getGroup('to_be_removed')).toStrictEqual(null);
expect(group.removeFromDatabase).toHaveBeenCalledTimes(1);
});
it('Shouldnt allow add groups without id or friendly_name in json', async () => {
+1
View File
@@ -7,6 +7,7 @@ class Group {
this.command = jest.fn();
this.meta = {};
this.members = members;
this.removeFromDatabase = jest.fn();
this.hasMember = (endpoint) => this.members.includes(endpoint);
}
}