From d01be839a51ed07b3c87ff5d30891b944b90bc5e Mon Sep 17 00:00:00 2001 From: alex-arc Date: Wed, 5 Aug 2026 14:22:09 +0200 Subject: [PATCH] limit to max duration --- .../src/api-data/rundown/__tests__/rundown.utils.test.ts | 9 +++++++++ apps/server/src/api-data/rundown/rundown.utils.ts | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/server/src/api-data/rundown/__tests__/rundown.utils.test.ts b/apps/server/src/api-data/rundown/__tests__/rundown.utils.test.ts index 489a8deb8..0e5d9b349 100644 --- a/apps/server/src/api-data/rundown/__tests__/rundown.utils.test.ts +++ b/apps/server/src/api-data/rundown/__tests__/rundown.utils.test.ts @@ -705,4 +705,13 @@ describe('eventDurationMatchGroupTarget()', () => { }); expect(result).toStrictEqual(null); }); + + it('returns null when duration would be over 24h', () => { + const result = eventDurationMatchGroupTarget({ + targetDuration: 30 * MILLIS_PER_HOUR, + groupDuration: MILLIS_PER_HOUR, + eventDuration: MILLIS_PER_MINUTE * 30, + }); + expect(result).toStrictEqual(null); + }); }); diff --git a/apps/server/src/api-data/rundown/rundown.utils.ts b/apps/server/src/api-data/rundown/rundown.utils.ts index ee3c9284b..f1d9e1be9 100644 --- a/apps/server/src/api-data/rundown/rundown.utils.ts +++ b/apps/server/src/api-data/rundown/rundown.utils.ts @@ -31,6 +31,7 @@ import { generateId, getCueCandidate, makeString, + maxDuration, validateEndAction, validateTimerType, validateTimes, @@ -624,5 +625,5 @@ export function eventDurationMatchGroupTarget({ if (targetDuration === groupDuration) return null; const durationDiff = targetDuration - groupDuration; const newDuration = eventDuration + durationDiff; - return newDuration < 0 ? null : newDuration; + return newDuration < 0 || newDuration > maxDuration ? null : newDuration; }