typhon/tests/RuleEngineService.test.ts

22 lines
799 B
TypeScript
Raw Permalink Normal View History

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"
);
});
});