// 5.7.0 (Durchsicht 12.09.2026, F11): Die Laufwerks-Gesundheit zählt nur die // Ereignisse DIESES Laufwerks. Vorher nahm der XPath Provider cdrom UND // disk für ALLE Geräte — eine hustende Festplatte (\Device\Harddisk1) // erzeugte „VERDACHT: DIE HARDWARE" in der Kachel des Blu-ray-Laufwerks. import { describe, expect, it } from 'vitest' import { beurteilen, gehoertZuLaufwerk, type LaufwerkEreignis } from '../src/kern/laufwerk/ereignisse' const e = (provider: string, id: number, geraet: string): LaufwerkEreignis => ({ zeit: '2026-09-02T18:32:00.000Z', provider, id, geraet, }) const PLATTE = e('disk', 11, '\\Device\\Harddisk1\\DR1') const PLATTE_BLOCK = e('disk', 7, '\\Device\\Harddisk1\\DR1') const CDROM0 = e('cdrom', 7, '\\Device\\CdRom0') const CDROM1 = e('cdrom', 11, '\\Device\\CdRom1') describe('gehoertZuLaufwerk', () => { it('mit Gerätename zählt nur dieses Gerät', () => { expect(gehoertZuLaufwerk(CDROM0, '\\Device\\CdRom0')).toBe(true) expect(gehoertZuLaufwerk(CDROM1, '\\Device\\CdRom0')).toBe(false) expect(gehoertZuLaufwerk(PLATTE, '\\Device\\CdRom0')).toBe(false) // Groß/Klein ist Windows egal. expect(gehoertZuLaufwerk(CDROM0, '\\device\\cdrom0')).toBe(true) }) it('ohne Gerätename zählt nur der cdrom-Treiber — nie eine Festplatte', () => { expect(gehoertZuLaufwerk(CDROM0, '')).toBe(true) expect(gehoertZuLaufwerk(CDROM1, '')).toBe(true) expect(gehoertZuLaufwerk(PLATTE, '')).toBe(false) }) }) describe('beurteilen je Gerät', () => { it('Controllerfehler der Festplatte beschuldigen nicht das Laufwerk', () => { const bericht = beurteilen([PLATTE, PLATTE_BLOCK, CDROM0], 24, undefined, '\\Device\\CdRom0') expect(bericht.urteil).toBe('disc') expect(bericht.controllerfehler).toBe(0) expect(bericht.fehlerhafteBloecke).toBe(1) expect(bericht.letzte).toHaveLength(1) }) it('ein zweites optisches Laufwerk zählt nicht mit', () => { const bericht = beurteilen([CDROM1, CDROM0], 24, undefined, '\\Device\\CdRom0') expect(bericht.urteil).toBe('disc') expect(bericht.controllerfehler).toBe(0) }) it('nur Festplatten-Ereignisse → für das Laufwerk ist es ruhig, mit Gerätename im Text', () => { const bericht = beurteilen([PLATTE, PLATTE_BLOCK], 24, undefined, '\\Device\\CdRom0') expect(bericht.urteil).toBe('ruhig') expect(bericht.text).toContain('\\Device\\CdRom0') }) })