import { AcInfinityMode, modeFromNumeric, resolveMode } from "../src/domain/ClimateSnapshot"; describe("ClimateSnapshot mode helpers", () => { it("maps known numeric modes and falls back to unknown", () => { expect(modeFromNumeric(1)).toBe(AcInfinityMode.Off); expect(modeFromNumeric(2)).toBe(AcInfinityMode.On); expect(modeFromNumeric(3)).toBe(AcInfinityMode.Auto); expect(modeFromNumeric(4)).toBe(AcInfinityMode.TimerToOn); expect(modeFromNumeric(5)).toBe(AcInfinityMode.TimerToOff); expect(modeFromNumeric(6)).toBe(AcInfinityMode.Cycle); expect(modeFromNumeric(7)).toBe(AcInfinityMode.Schedule); expect(modeFromNumeric(8)).toBe(AcInfinityMode.Vpd); expect(modeFromNumeric(0)).toBe(AcInfinityMode.Unknown); expect(modeFromNumeric(undefined)).toBe(AcInfinityMode.Unknown); expect(modeFromNumeric(null)).toBe(AcInfinityMode.Unknown); }); it("prefers runtime mode unless runtime is unknown", () => { expect(resolveMode(AcInfinityMode.On, AcInfinityMode.Auto)).toBe(AcInfinityMode.On); expect(resolveMode(AcInfinityMode.Unknown, AcInfinityMode.Vpd)).toBe(AcInfinityMode.Vpd); }); });