From 3537d28eb298c237c86e262b90a30309b0bfb090 Mon Sep 17 00:00:00 2001 From: xRangerDE Date: Fri, 20 Mar 2026 09:28:06 +0100 Subject: [PATCH] test: add filename collision detection unit tests Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/smoke-test-merge-split-logic.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/smoke-test-merge-split-logic.js b/scripts/smoke-test-merge-split-logic.js index ab9a7fb..7370fbd 100644 --- a/scripts/smoke-test-merge-split-logic.js +++ b/scripts/smoke-test-merge-split-logic.js @@ -105,6 +105,21 @@ function run() { const iIndex = args.indexOf('-i'); assert(ssIndex < iIndex, `FFmpeg args: -ss (${ssIndex}) must be before -i (${iIndex})`); + // ---- Test 9: ensureUniqueFilename pattern ---- + function ensureUnique(base, ext, existingFiles) { + let candidate = base + ext; + if (!existingFiles.includes(candidate)) return candidate; + let counter = 1; + while (existingFiles.includes(candidate)) { + candidate = `${base}_${counter}${ext}`; + counter++; + } + return candidate; + } + assert(ensureUnique('video', '.mp4', []) === 'video.mp4', 'Unique: no conflict'); + assert(ensureUnique('video', '.mp4', ['video.mp4']) === 'video_1.mp4', 'Unique: one conflict'); + assert(ensureUnique('video', '.mp4', ['video.mp4', 'video_1.mp4']) === 'video_2.mp4', 'Unique: two conflicts'); + // ---- Results ---- if (failures.length > 0) { console.error(`FAIL: ${failures.length} test(s) failed:`);