Files
rippy/rippy-windows/test/commander-funde.test.ts
T
HitonabiandClaude Fable 5 c5dd90cc18
Ampel / ampel (push) Successful in 1m25s
fix(v5): Die drei Funde aus dem ersten Commander-Test
FUND 1 — 'Key korrekt, aber als ungueltig angezeigt': Stimmt beides.
Live gemessen: Der aktuelle Forum-Key ist in Ordnung, aber MakeMKV
1.18.4 ist ZU ALT fuer ihn — makemkvcon meldet 5020 UND 5021 zusammen,
und die alte Pruefung brach beim ersten Code ab und beschuldigte den
Schluessel. urteilAusAusgabe sammelt jetzt ALLE Codes (5021 schlaegt
5020, MakeMKV-Version aus MSG 1005 wird mitgelesen) und die Kachel
sagt den wahren Satz: 'Der Key ist in Ordnung — MakeMKV 1.18.4 ist zu
alt. Rippy hat ihn entfernt, damit der Beta-Modus weiterlaeuft (Rips
klappen trotzdem). Abhilfe: MakeMKV aktualisieren.' Neues Feld
weiterBetrieb: Beta-Modus ist GELB (Warnung), nicht rot. Test mit der
echten Ausgabe als Fixture.

FUND 2 — 'Komprimieren auf CPU statt GPU': Der Default 'H.265 MKV
1080p30' ist ein CPU-Preset. Neue GEMESSENE Empfehlung
(gemeinsam/preset-empfehlung.ts): aus den echten Backends und der
echten Preset-Liste des eigenen HandBrake — VCN vor NVENC vor QSV vor
CPU, nur Namen die WIRKLICH in der Liste stehen, HandBrake-Presets
deckeln die Aufloesung nur (DVD bleibt SD). Kette: eigene Wahl >
allgemeines Preset > Empfehlung > CPU-Default. Auf dem Commander-PC:
bluray/dvd -> 'H.265 VCN 1080p', uhd -> 'H.265 VCN 2160p 4K'. Die
Preset-Auswahl zeigt 'automatisch: <Empfehlung>' als Leer-Option.

FUND 3 — 'keine Alternative waehlbar': 'Aendern …'-Dialog an der
Laufwerks-Kachel (§ 5 Schritt 4): TMDb-Suche (Film + Serie, mit
Postern), Klick uebernimmt — Nutzer-Wahl gilt als 100 % und steuert
Ablage-Ordner, NFO und Poster. Neue Nachrichten metadaten-suchen /
zuordnung-setzen / metadaten-vorschlaege.

Dazu: Poster in der Laufwerks-Kachel (CSP um image.tmdb.org
erweitert), Restzeit-Schaetzung am Fortschritt.

192 Tests gruen, Smoke gruen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 20:20:10 +02:00

81 lines
3.7 KiB
TypeScript

// Die drei Funde aus dem ersten Commander-Test (30.08.2026, abends) —
// jeder als Test festgehalten, mit den LIVE gemessenen Fixtures.
import { describe, expect, it } from 'vitest'
import { urteilAusAusgabe } from '../src/kern/werkzeuge/schluessel'
import { presetEmpfehlung, DEFAULT_HB_PRESET } from '../src/gemeinsam/preset-empfehlung'
import { presetFuer } from '../src/kern/komprimieren/presets'
describe('Fund 1 — „Key korrekt, aber als ungültig angezeigt"', () => {
// Die ECHTE makemkvcon-Ausgabe vom Commander-PC (30.08.2026): Der
// aktuelle Forum-Key ist in Ordnung, MakeMKV 1.18.4 ist ZU ALT für ihn
// — es meldet 5020 UND 5021 zusammen.
const ECHTE_AUSGABE = [
'MSG:1005,0,1,"MakeMKV v1.18.4 win(x64-release) gestartet","%1 gestartet","MakeMKV v1.18.4 win(x64-release)"',
'MSG:5020,516,0,"Der hinterlegte Aktivierungsschlüssel ist ungültig. …","…"',
'MSG:5021,131332,1,"Diese Programmversion ist zu alt. Bitte laden Sie die aktuelle Version von http://www.makemkv.com/ herunter.","…","http://www.makemkv.com/"',
].join('\n')
it('5021 schlägt 5020: Die Ursache ist die Version, nicht der Schlüssel', () => {
const urteil = urteilAusAusgabe(ECHTE_AUSGABE)
expect(urteil.ok).toBe(false)
expect(urteil.code).toBe(5021)
expect(urteil.grund).toContain('zu alt')
expect(urteil.version).toBe('1.18.4')
})
it('ohne Key-Meldungen ist alles gut — und die Version kommt trotzdem mit', () => {
const urteil = urteilAusAusgabe(
'MSG:1005,0,1,"MakeMKV v1.18.4 win(x64-release) gestartet","x"\nMSG:5010,0,0,"Das Öffnen der Disk schlug fehl","x"',
)
expect(urteil.ok).toBe(true)
expect(urteil.version).toBe('1.18.4')
})
it('5020 allein bleibt „Schlüssel wird nicht angenommen"', () => {
const urteil = urteilAusAusgabe('MSG:5020,516,0,"…","…"')
expect(urteil.code).toBe(5020)
})
})
describe('Fund 2 — „Komprimieren auf der CPU statt der GPU"', () => {
// Die ECHTE Hardware-Preset-Liste des Commander-HandBrake (30.08.2026)
// plus die gemessenen Backends der RX 9070 XT.
const PRESETS = [
'Very Fast 1080p30',
'H.265 MKV 1080p30',
'AV1 QSV 2160p 4K',
'AV1 VCN 2160p 4K',
'H.265 NVENC 2160p 4K',
'H.265 NVENC 1080p',
'H.265 QSV 2160p 4K',
'H.265 QSV 1080p',
'H.265 VCN 2160p 4K',
'H.265 VCN 1080p',
]
const BACKENDS = ['cpu-x264', 'cpu-x265', 'cpu-av1', 'vce', 'vce-av1']
it('empfiehlt auf dem Commander-PC VCN, nicht CPU', () => {
expect(presetEmpfehlung('bluray', BACKENDS, PRESETS)).toBe('H.265 VCN 1080p')
expect(presetEmpfehlung('dvd', BACKENDS, PRESETS)).toBe('H.265 VCN 1080p')
expect(presetEmpfehlung('uhd', BACKENDS, PRESETS)).toBe('H.265 VCN 2160p 4K')
})
it('NVIDIA-Maschine bekäme NVENC, Intel QSV, reine CPU den Default', () => {
expect(presetEmpfehlung('bluray', ['cpu-x265', 'nvenc'], PRESETS)).toBe('H.265 NVENC 1080p')
expect(presetEmpfehlung('bluray', ['cpu-x265', 'qsv'], PRESETS)).toBe('H.265 QSV 1080p')
expect(presetEmpfehlung('bluray', ['cpu-x264', 'cpu-x265'], PRESETS)).toBe(DEFAULT_HB_PRESET)
})
it('empfohlen wird NUR, was die gemessene Liste hergibt', () => {
// vce da, aber keine VCN-Presets in der Liste → CPU-Default statt
// eines geratenen Namens (die „Invalid preset"-Falle).
expect(presetEmpfehlung('bluray', ['vce'], ['Very Fast 1080p30'])).toBe(DEFAULT_HB_PRESET)
})
it('die Kette bleibt: eigene Wahl schlägt die Empfehlung', () => {
expect(presetFuer('bluray', { transcodePresetBluray: 'Fast 480p30' }, 'H.265 VCN 1080p')).toBe('Fast 480p30')
expect(presetFuer('bluray', {}, 'H.265 VCN 1080p')).toBe('H.265 VCN 1080p')
expect(presetFuer('bluray', {}, '')).toBe(DEFAULT_HB_PRESET)
})
})