fix: generateConsecutivePeriods to end 1 millisecond before next period start
parent
39eb9b08b4
commit
74f3390413
|
@ -14,11 +14,11 @@ describe("generateConsecutivePeriods", () => {
|
|||
|
||||
expect(results[0]).toEqual({
|
||||
start: new Date(Date.UTC(2020, 0, 1)),
|
||||
end: new Date(Date.UTC(2021, 0, 1)),
|
||||
end: new Date(Date.UTC(2020, 11, 31, 23, 59, 59, 999)),
|
||||
});
|
||||
expect(results[4]).toEqual({
|
||||
start: new Date(Date.UTC(2024, 0, 1)),
|
||||
end: new Date(Date.UTC(2025, 0, 1)),
|
||||
end: new Date(Date.UTC(2024, 11, 31, 23, 59, 59, 999)),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { addMilliseconds } from "date-fns";
|
||||
import { Period } from "./Period";
|
||||
|
||||
export default function generateConsecutivePeriods({
|
||||
|
@ -14,7 +15,8 @@ export default function generateConsecutivePeriods({
|
|||
let nextPeriodStart = start;
|
||||
do {
|
||||
const periodStart = nextPeriodStart;
|
||||
const periodEnd = incrementStart(nextPeriodStart);
|
||||
nextPeriodStart = incrementStart(periodStart);
|
||||
const periodEnd = addMilliseconds(nextPeriodStart, -1);
|
||||
if (periodEnd.getTime() < periodStart.getTime()) {
|
||||
throw new Error("incrementStart call decremented date!!!");
|
||||
}
|
||||
|
@ -22,8 +24,6 @@ export default function generateConsecutivePeriods({
|
|||
start: periodStart,
|
||||
end: periodEnd,
|
||||
});
|
||||
|
||||
nextPeriodStart = periodEnd;
|
||||
} while (nextPeriodStart.getTime() < end.getTime());
|
||||
}
|
||||
return periods;
|
||||
|
|
Loading…
Reference in New Issue