diff --git a/src/common/entity/compute_entity_name.ts b/src/common/entity/compute_entity_name.ts index ca57842d8b..be27a6c482 100644 --- a/src/common/entity/compute_entity_name.ts +++ b/src/common/entity/compute_entity_name.ts @@ -31,7 +31,7 @@ export const computeEntityEntryName = ( entry.name || ("original_name" in entry && entry.original_name != null ? String(entry.original_name) - : ""); + : undefined); const device = entry.device_id ? hass.devices[entry.device_id] : undefined; diff --git a/test/common/entity/compute_entity_name.test.ts b/test/common/entity/compute_entity_name.test.ts index 9fa36eeb9c..5d4442a062 100644 --- a/test/common/entity/compute_entity_name.test.ts +++ b/test/common/entity/compute_entity_name.test.ts @@ -159,4 +159,25 @@ describe("computeEntityEntryName", () => { expect(computeEntityEntryName(entry as any, hass as any)).toBe("2"); vi.restoreAllMocks(); }); + + it("returns undefined when entity has device but no name or original_name", () => { + vi.spyOn(computeDeviceNameModule, "computeDeviceName").mockReturnValue( + "Kitchen Device" + ); + + const entry = { + entity_id: "sensor.kitchen_sensor", + // No name property + // No original_name property + device_id: "dev1", + }; + const hass = { + devices: { dev1: {} }, + states: {}, + }; + + // Should return undefined to maintain function contract + expect(computeEntityEntryName(entry as any, hass as any)).toBeUndefined(); + vi.restoreAllMocks(); + }); });