// Tests der Dateinamen in der Ablage (kern/ablage/dateinamen.ts, 5.6.0). import { describe, expect, it } from 'vitest' import { rollenNummern, zielDateiname } from '../src/kern/ablage/dateinamen' describe('zielDateiname', () => { const film = { titel: 'Akira', jahr: 1988, alsSerie: false } it('ein Hauptfilm heißt wie der Film', () => { expect(zielDateiname({ ...film, rolle: 'hauptfilm', nummer: 1, anzahl: 1, original: 'title_t00.mkv' })).toBe('Akira (1988).mkv') }) it('zwei Hauptfilme werden Fassungen', () => { expect(zielDateiname({ ...film, rolle: 'hauptfilm', nummer: 1, anzahl: 2, original: 'title_t00.mkv' })).toBe('Akira (1988) - Fassung 1.mkv') expect(zielDateiname({ ...film, rolle: 'hauptfilm', nummer: 2, anzahl: 2, original: 'title_t01.mkv' })).toBe('Akira (1988) - Fassung 2.mkv') }) it('Extras werden nummeriert', () => { expect(zielDateiname({ ...film, rolle: 'extra', nummer: 3, anzahl: 5, original: 'title_t07.mkv' })).toBe('Akira (1988) - Extra 03.mkv') }) it('die Endung bleibt, was MakeMKV schrieb', () => { expect(zielDateiname({ ...film, rolle: 'hauptfilm', nummer: 1, anzahl: 1, original: 'x.mp4' })).toBe('Akira (1988).mp4') }) it('ohne Jahr ohne Klammer', () => { expect(zielDateiname({ ...film, jahr: null, rolle: 'hauptfilm', nummer: 1, anzahl: 1, original: 'a.mkv' })).toBe('Akira.mkv') }) it('Serie: Folgen behalten den Namen (die Episoden-Zuordnung benennt später), Extras heißen nach der Serie', () => { const serie = { titel: 'Spartacus', jahr: 2010, alsSerie: true } expect(zielDateiname({ ...serie, rolle: 'folge', nummer: 1, anzahl: 4, original: 'title_t02.mkv' })).toBe('title_t02.mkv') expect(zielDateiname({ ...serie, rolle: 'extra', nummer: 1, anzahl: 1, original: 'title_t09.mkv' })).toBe('Spartacus - Extra 01.mkv') }) it('ohne erkannten Titel bleibt der MakeMKV-Name', () => { expect(zielDateiname({ titel: '', jahr: null, alsSerie: false, rolle: 'hauptfilm', nummer: 1, anzahl: 1, original: 'title_t00.mkv' })).toBe('title_t00.mkv') }) }) describe('rollenNummern', () => { it('zählt je Rolle in Reihenfolge und kennt die Gesamtzahl', () => { expect(rollenNummern(['hauptfilm', 'extra', 'extra', 'hauptfilm'])).toEqual([ [1, 2], [1, 2], [2, 2], [2, 2], ]) }) })