diff --git a/src/common/entity/compute_state_display.ts b/src/common/entity/compute_state_display.ts index d875dc4b48..48044a160a 100644 --- a/src/common/entity/compute_state_display.ts +++ b/src/common/entity/compute_state_display.ts @@ -144,6 +144,7 @@ const computeStateToPartsFromEntityAttributes = ( fraction: "value", literal: "literal", currency: "unit", + minusSign: "value", }; const valueParts: ValuePart[] = []; diff --git a/test/common/entity/compute_state_display.test.ts b/test/common/entity/compute_state_display.test.ts index 8d9f59f207..707b6a5010 100644 --- a/test/common/entity/compute_state_display.test.ts +++ b/test/common/entity/compute_state_display.test.ts @@ -684,6 +684,26 @@ describe("computeStateDisplayFromEntityAttributes with numeric device classes", ); expect(result).toBe("$12.00"); }); + + it("Should format negative monetary device_class", () => { + const result = computeStateDisplayFromEntityAttributes( + // eslint-disable-next-line @typescript-eslint/no-empty-function + (() => {}) as any, + { + language: "en", + } as FrontendLocaleData, + [], + {} as HassConfig, + undefined, + "number.test", + { + device_class: "monetary", + unit_of_measurement: "USD", + }, + "-12" + ); + expect(result).toBe("-$12.00"); + }); }); describe("computeStateDisplayFromEntityAttributes datetime device calss", () => {