diff --git a/src/getOverlappingDaysInIntervals/index.ts b/src/getOverlappingDaysInIntervals/index.ts index ab50ef14e5..22e3ceccc6 100644 --- a/src/getOverlappingDaysInIntervals/index.ts +++ b/src/getOverlappingDaysInIntervals/index.ts @@ -41,11 +41,11 @@ export function getOverlappingDaysInIntervals( const [leftStartTime, leftEndTime] = [ +toDate(intervalLeft.start), +toDate(intervalLeft.end), - ].sort(); + ].sort((a, b) => a - b); const [rightStartTime, rightEndTime] = [ +toDate(intervalRight.start), +toDate(intervalRight.end), - ].sort(); + ].sort((a, b) => a - b); const isOverlapping = leftStartTime < rightEndTime && rightStartTime < leftEndTime; diff --git a/src/getOverlappingDaysInIntervals/test.ts b/src/getOverlappingDaysInIntervals/test.ts index 21201fde08..1dad0b91ba 100644 --- a/src/getOverlappingDaysInIntervals/test.ts +++ b/src/getOverlappingDaysInIntervals/test.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ import assert from "assert"; -import { describe, it } from "vitest"; +import { describe, expect, it } from "vitest"; import { getOverlappingDaysInIntervals } from "./index.js"; describe("getOverlappingDaysInIntervals", () => { @@ -214,4 +214,18 @@ describe("getOverlappingDaysInIntervals", () => { assert(numOverlappingDays === 0); }); }); + + it("properly sorts the dates", () => { + const result = getOverlappingDaysInIntervals( + { + start: new Date(2001, 8 /* Sep */, 1), + end: new Date(2023, 11 /* Dec */, 20), + }, + { + start: new Date(2023, 11 /* Dec */, 21), + end: new Date(2001, 8 /* Sep */, 9), + }, + ); + expect(result).toBe(8137); + }); });