fix: Fix DatabaseEntry with ID 'X' does not exist when adding device to delete group ID (#28583)

This commit is contained in:
Koen Kanters
2025-09-11 20:53:58 +02:00
committed by GitHub
parent 3f258342d8
commit 09f33b31a9
3 changed files with 7 additions and 0 deletions
+1
View File
@@ -638,6 +638,7 @@ export default class Bridge extends Extension {
await entity.zh.removeFromNetwork();
}
this.zigbee.removeGroupFromLookup(entity.ID);
settings.removeGroup(entity.ID);
}
+4
View File
@@ -432,4 +432,8 @@ export default class Zigbee {
groupByID(id: number): Group | undefined {
return this.resolveGroup(id);
}
removeGroupFromLookup(id: number): void {
this.groupLookup.delete(id);
}
}
+2
View File
@@ -2971,11 +2971,13 @@ describe("Extension: Bridge", () => {
it("Should allow to remove group", async () => {
const group = groups.group_1;
const removeGroupFromLookup = vi.spyOn(controller.zigbee, "removeGroupFromLookup");
mockMQTTPublishAsync.mockClear();
mockMQTTEvents.message("zigbee2mqtt/bridge/request/group/remove", "group_1");
await flushPromises();
expect(group.removeFromNetwork).toHaveBeenCalledTimes(1);
expect(settings.getGroup("group_1")).toBeUndefined();
expect(removeGroupFromLookup).toHaveBeenCalledWith(1);
expect(mockMQTTPublishAsync).toHaveBeenCalledWith("zigbee2mqtt/bridge/groups", expect.any(String), expect.any(Object));
expect(mockMQTTPublishAsync).toHaveBeenCalledWith(
"zigbee2mqtt/bridge/response/group/remove",