import { RuleEngineService } from "../src/services/RuleEngineService"; describe("RuleEngineService", () => { it("returns defaults and accepts valid updates", () => { const svc = new RuleEngineService(); const defaults = svc.getRules(); expect(defaults.mode).toBe("manual"); const updated = svc.updateRules({ mode: "climate_auto", temperatureTargetC: 23.5 }, 1_700_000_123); expect(updated.mode).toBe("climate_auto"); expect(updated.temperatureTargetC).toBe(23.5); expect(updated.updatedAtEpochSeconds).toBe(1_700_000_123); }); it("rejects invalid rules", () => { const svc = new RuleEngineService(); expect(() => svc.updateRules({ minimumHoldSeconds: 2 })).toThrow( "rules.minimumHoldSeconds must be an integer between 5 and 7200" ); }); });