Add a pure, unit-tested buildArgs() module

Extracts yt-dlp argv construction out of download.ts into its own
electron-free module (src/main/buildArgs.ts) so it can be exercised by
vitest without spinning up Electron, plus a real-download integration
test (skipped by default; opt in with AEROFETCH_REAL_DOWNLOAD=1) that
spawns the bundled yt-dlp.exe/ffmpeg.exe against its argv. download.ts
isn't wired up to it yet — that lands with the next commit.

This was done in an earlier local session but never actually committed,
even though download.ts has imported from it since the Phase A commit
(bb5dd6c) — the build had been relying on an uncommitted local file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 20:52:23 -04:00
parent bb5dd6c438
commit 26cd7fc7b0
6 changed files with 898 additions and 3 deletions
+4 -2
View File
@@ -18,7 +18,8 @@
"start": "electron-vite preview",
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "npm run typecheck:node && npm run typecheck:web"
"typecheck": "npm run typecheck:node && npm run typecheck:web",
"test": "vitest run"
},
"dependencies": {
"@electron-toolkit/utils": "^4.0.0",
@@ -39,6 +40,7 @@
"electron-builder": "^26.15.3",
"electron-vite": "^5.0.0",
"typescript": "^6.0.3",
"vite": "^7.3.5"
"vite": "^7.3.5",
"vitest": "^4.1.9"
}
}