From 336758c9e9aa6f1a5457aa0b223af064d882dc1c Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun, 9 Aug 2026 09:57:32 +0000 Subject: [PATCH] test: add edge case tests for isCalendarUnit Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> --- src/engine/datetime.test.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/engine/datetime.test.ts b/src/engine/datetime.test.ts index c327c52..aa636c9 100644 --- a/src/engine/datetime.test.ts +++ b/src/engine/datetime.test.ts @@ -204,5 +204,32 @@ describe("datetime", () => { expect(isCalendarUnit("minute", 1)).toBe(false); expect(isCalendarUnit("unit:meter", 1)).toBe(false); }); + + it("should handle edge cases for amount", () => { + expect(isCalendarUnit("day", 0)).toBe(true); + expect(isCalendarUnit("day", Number.MAX_SAFE_INTEGER)).toBe(true); + expect(isCalendarUnit("day", Number.MIN_SAFE_INTEGER)).toBe(true); + + expect(isCalendarUnit("day", NaN)).toBe(false); + expect(isCalendarUnit("day", Infinity)).toBe(false); + expect(isCalendarUnit("day", -Infinity)).toBe(false); + }); + + it("should handle edge cases for unitId string format", () => { + expect(isCalendarUnit("", 1)).toBe(false); + expect(isCalendarUnit(":", 1)).toBe(false); + + // string.split(":") behavior: + expect(isCalendarUnit("time:month", 1)).toBe(true); + expect(isCalendarUnit(":day", 1)).toBe(true); + expect(isCalendarUnit("day:", 1)).toBe(false); + expect(isCalendarUnit("a:day:c", 1)).toBe(true); + }); + + it("should return false for case-sensitive mismatch", () => { + expect(isCalendarUnit("Day", 1)).toBe(false); + expect(isCalendarUnit("YEAR", 1)).toBe(false); + expect(isCalendarUnit("MONTH", 1)).toBe(false); + }); }); });