// Die Werkzeug-Naht (kern/werkzeuge/aufruf.ts, 5.4.0): echte EXE-Pfade // gehen unverändert durch; Node-Skripte (die Nachbauten des Klick-Beweises) // laufen über die eigene Laufzeit mit ELECTRON_RUN_AS_NODE. import { describe, expect, it } from 'vitest' import { istSkript, werkzeugStart } from '../src/kern/werkzeuge/aufruf' describe('werkzeugStart', () => { it('eine EXE bleibt eine EXE — Argumente und Umgebung unverändert', () => { const start = werkzeugStart('C:\\Programme\\MakeMKV\\makemkvcon.exe', ['-r', 'info', 'dev:G:'], { PATH: 'x' }) expect(start.programm).toBe('C:\\Programme\\MakeMKV\\makemkvcon.exe') expect(start.args).toEqual(['-r', 'info', 'dev:G:']) expect(start.env).toEqual({ PATH: 'x' }) }) it('ein Skript läuft über die eigene Laufzeit, das Skript wird erstes Argument', () => { const start = werkzeugStart('F:\\rippy\\bau\\klick\\fake-makemkvcon.cjs', ['-r', 'info'], { PATH: 'x' }) expect(start.programm).toBe(process.execPath) expect(start.args).toEqual(['F:\\rippy\\bau\\klick\\fake-makemkvcon.cjs', '-r', 'info']) expect(start.env['ELECTRON_RUN_AS_NODE']).toBe('1') expect(start.env['PATH']).toBe('x') }) it('istSkript kennt .cjs/.mjs/.js — und sonst nichts', () => { expect(istSkript('a.cjs')).toBe(true) expect(istSkript('A.MJS')).toBe(true) expect(istSkript('a.js')).toBe(true) expect(istSkript('HandBrakeCLI.exe')).toBe(false) expect(istSkript('a.json')).toBe(false) expect(istSkript('')).toBe(false) }) })