Einstellungen und Zusatzdateien für den Schnitt ablegen
Intro, Outro, Backing Track und Voice-overs pro Clip laufen über denselben Upload in Stücken wie die Clips. Die Schnitt-Einstellungen werden feldweise geprüft; ffprobe akzeptiert jetzt auch reine Tonspuren. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d7102d04a4
commit
72e4b8ab7a
6 files changed
+340
-45
No files matched your search
@@ -0,0 +1,46 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import { test } from 'node:test';
|
||||
import { defaultSettings, mergeSettings } from '../server/settings.js';
|
||||
|
||||
test('Vorgaben: beschleunigen und stummschalten an, Intro, Outro und Musik aus', () => {
|
||||
const settings = defaultSettings();
|
||||
assert.equal(settings.speedUp, true);
|
||||
assert.equal(settings.muteClips, true);
|
||||
assert.equal(settings.intro.enabled, false);
|
||||
assert.equal(settings.music.volume, 60);
|
||||
});
|
||||
|
||||
test('Teiländerungen lassen den Rest stehen', () => {
|
||||
const merged = mergeSettings(defaultSettings(), { music: { volume: 35 } }, 5);
|
||||
assert.equal(merged.music.volume, 35);
|
||||
assert.equal(merged.music.enabled, false);
|
||||
assert.equal(merged.intro.volume, 100);
|
||||
});
|
||||
|
||||
test('Voice-over-Lautstärke pro Clip und ausgeschlossene Clips', () => {
|
||||
const merged = mergeSettings(defaultSettings(), { voiceVolumes: { 2: 80 }, excluded: [3, 1, 3] }, 5);
|
||||
assert.deepEqual(merged.voiceVolumes, { 2: 80 });
|
||||
assert.deepEqual(merged.excluded, [1, 3]);
|
||||
});
|
||||
|
||||
test('Ungültige Werte werden abgelehnt', () => {
|
||||
const invalid = [
|
||||
{ music: { volume: 101 } },
|
||||
{ clipVolume: -1 },
|
||||
{ clipVolume: 50.5 },
|
||||
{ speedUp: 'ja' },
|
||||
{ voiceVolumes: { 9: 50 } },
|
||||
{ excluded: [7] },
|
||||
[],
|
||||
];
|
||||
for (const patch of invalid) {
|
||||
assert.throws(() => mergeSettings(defaultSettings(), patch, 5), { status: 400 });
|
||||
}
|
||||
});
|
||||
|
||||
test('Unbekannte Felder werden ignoriert', () => {
|
||||
const merged = mergeSettings(defaultSettings(), { hacker: true, intro: { enabled: true, file: '/etc/passwd' } }, 1);
|
||||
assert.equal(merged.hacker, undefined);
|
||||
assert.equal(merged.intro.file, undefined);
|
||||
assert.equal(merged.intro.enabled, true);
|
||||
});
|
||||
Reference in new issue
Block a user