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:
4 files changed
+30
-3
No files matched your search
@@ -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`);
|
||||
});
|
||||
Reference in new issue
Block a user