Bibliothek: eindeutige Namen auch für Auswahl-ZIPs

Dieselbe Schwäche eine Ebene weiter: Jedes ZIP aus der Bibliothek hieß
`klarbild_2026-09-01.zip`, zwei verschiedene Auswahlen am selben Tag im selben
Ordner überschrieben sich also. Jetzt
`2026-09-01_143207_auswahl-12-bilder_a3f9.zip`, und der Client liest den Namen
aus dem Kopf statt einen eigenen zu bauen.

124 Tests grün.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BNhLunz586g6DeYMa7Qsd1
This commit is contained in:
tillandClaude Opus 5 committed 2026-09-01 15:39:39 +00:00
1 parent a87587c273
commit 545f9ae909
4 files changed
+30 -3

No files matched your search

+10
View File
@@ -91,3 +91,13 @@ test('Ein Name aus dem Kopf kann keinen Pfad einschleusen', () => {
assert.ok(!n.includes('/') && !n.includes('\\') && !n.startsWith('.'), `Pfad überlebt: ${n}`);
}
});
test('ZIPs aus der Bibliothek heißen nicht alle gleich', async () => {
const { buildAuswahlZipName } = await import('../src/lib/naming.ts');
const a = buildAuswahlZipName(12, AM);
assert.match(a, /^2026-09-01_143207_auswahl-12-bilder_[0-9a-f]{4}\.zip$/);
assert.equal(buildAuswahlZipName(1, AM).includes('auswahl-1-bild_'), true);
// Zwei Auswahlen derselben Sekunde: das Kürzel unterscheidet sie.
const paare = new Set(Array.from({ length: 50 }, () => buildAuswahlZipName(12, AM)));
assert.ok(paare.size > 40, `zu viele gleiche Namen: ${paare.size}/50`);
});