// MESSUNG an echter Hardware — läuft nur auf Verlangen: // // RIPPY_MESSUNG=1 npx vitest run test/messung.laufwerk.test.ts // // In der Ampel (Linux, kein Laufwerk) wird sie übersprungen; die Ergebnisse // werden im SAVEPOINT.md mit Ausgabe dokumentiert (beweisen statt // behaupten). NUR LESEND — kein Auswerfen, kein Verriegeln; der // Auswurf-Beweis ist ein eigener, ausdrücklicher Lauf (messung.auswurf). import { describe, expect, it } from 'vitest' const messen = process.env.RIPPY_MESSUNG === '1' && process.platform === 'win32' describe.skipIf(!messen)('Messung am echten Laufwerk', () => { it('listet Laufwerke und liest ihren Zustand', async () => { // koffi erst hier laden — beim Einsammeln der Tests bleibt alles rein. const { win32Api } = await import('../src/kern/laufwerk/win32') const { geraeteInfo, listOptischeLaufwerke } = await import('../src/kern/laufwerk/disc') const api = win32Api() const geraete = listOptischeLaufwerke(api) console.log(`MESSUNG optische Laufwerke: ${JSON.stringify(geraete)}`) expect(Array.isArray(geraete)).toBe(true) for (const geraet of geraete) { const info = geraeteInfo(api, geraet) console.log( `MESSUNG ${info.name} status=${info.status} typ=${info.typ} ` + `groesse=${info.groesseBytes} modell="${info.modell}" ` + `serial=${info.seriennummer}${info.grund.length > 0 ? ` grund="${info.grund}"` : ''}`, ) expect(info.id.length).toBeGreaterThan(0) expect(['ready', 'empty', 'unknown']).toContain(info.status) } }) }) // Ohne Messung ist die Datei trotzdem ein gültiges Test-Modul. describe.skipIf(messen)('Messung übersprungen', () => { it('läuft nur mit RIPPY_MESSUNG=1 unter Windows', () => { expect(true).toBe(true) }) })