22 lines
799 B
TypeScript
22 lines
799 B
TypeScript
|
|
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"
|
||
|
|
);
|
||
|
|
});
|
||
|
|
});
|