From a01a266efa871b687725573c3eea8857d01e5a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Mon, 1 Jun 2026 16:55:04 -0400 Subject: [PATCH] fix(cli): mock findFFmpeg in render tests for CI without ffmpeg (#1154) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(cli): pre-flight FFmpeg check and propagate failed_stage on render errors Add an early FFmpeg availability check in renderLocal() so users get a clear error message before the render starts instead of a cryptic ENOENT mid-render. Also thread job.failedStage through handleRenderError into the render_error telemetry event so we can attribute failures to a specific pipeline stage. * fix(cli): consolidate FFmpeg pre-flight into renderLocal() Remove the duplicate findFFmpeg() check from run() — renderLocal() already validates FFmpeg availability before starting. Single source of truth. * fix(cli): mock findFFmpeg in render tests for CI runners without ffmpeg --- packages/cli/src/commands/render.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/cli/src/commands/render.test.ts b/packages/cli/src/commands/render.test.ts index a6dbb2c43..5426f58b7 100644 --- a/packages/cli/src/commands/render.test.ts +++ b/packages/cli/src/commands/render.test.ts @@ -24,6 +24,11 @@ vi.mock("../telemetry/events.js", () => ({ trackRenderError: vi.fn(), })); +vi.mock("../browser/ffmpeg.js", () => ({ + findFFmpeg: vi.fn(() => "/usr/bin/ffmpeg"), + getFFmpegInstallHint: vi.fn(() => "brew install ffmpeg"), +})); + describe("renderLocal browser GPU config", () => { const savedEnv = new Map(); // Pre-resolve once. The first dynamic `import("./render.js")` in this file