# Skipped Test Inventory _Last audited: 2026-05-05_ This document tracks intentional skip usage in test suites so stale follow-up backlog items can be retired quickly. ## Current Inventory Audit commands: ```bash rg -n "\b(it|test|describe)\.skip\b|\bskipIf\b|createLoopbackIntegrationTest\(" packages plugins scripts --glob "**/*.{test,spec}.{ts,tsx,mjs}" rg -n "\?\s*it\s*:\s*it\.skip|detectLoopbackBinding|const itPosix" packages plugins scripts --glob "**/*.{test,spec}.{ts,tsx,mjs}" ``` Current results: 1. **Environment-gated integration aliases (loopback gated)** - Canonical helper: `packages/dashboard/src/__tests__/loopback-integration-test.ts` - Helper consumers: - `packages/dashboard/src/server-static-assets.test.ts` - `packages/dashboard/src/__tests__/websocket.test.ts` - `packages/dashboard/src/__tests__/server-webhook.test.ts` - Pattern: suites call `createLoopbackIntegrationTest(scope)` and register integration cases through the returned test function. - Rationale: these suites require real loopback binding support (`127.0.0.1`) and are intentionally environment-gated. - Auditability: when loopback binding is unavailable, skipped test names include a standardized reason and the suite scope label (`...; scope: `), making coverage gaps explicit in CI/test output. 2. **CLI slow-lane agent export gate** - `packages/cli/src/commands/__tests__/agent-export.test.ts` - Pattern: `describe.skipIf(!SHOULD_RUN_SLOW_CLI)("agent-export", ...)` - Gate: `FUSION_TEST_SLOW_CLI=1` or `FUSION_TEST_SLOW_CLI=true` - Rationale: these tests perform real workspace and `AgentStore` round-trips and are kept out of the default CLI unit lane. - Replacement owner: the explicit slow lane (`pnpm --filter @runfusion/fusion test:slow-cli`) is responsible for running them when slow CLI coverage is requested. 3. **CLI pi extension integration gate** - `packages/cli/src/__tests__/extension-integration.test.ts` - Pattern: `describe.skipIf(!SHOULD_RUN_EXTENSION_INTEGRATION)("built fn pi extension integration", ...)` - Gate: `FUSION_TEST_EXTENSION_INTEGRATION=1` or `FUSION_TEST_EXTENSION_INTEGRATION=true` - Rationale: this built-extension suite requires compiled CLI artifacts, so it is run through the explicit local release lane instead of every unit run. - Replacement owner: `pnpm --filter @runfusion/fusion test:extension-integration`. 4. **CLI legacy pi extension gate** - `packages/cli/src/__tests__/extension.test.ts` - Pattern: `describe.skipIf(!SHOULD_RUN_LEGACY_EXTENSION_INTEGRATION)("fn pi extension (legacy exhaustive suite)", ...)` - Gate: `FUSION_TEST_LEGACY_EXTENSION_INTEGRATION=1` or `FUSION_TEST_LEGACY_EXTENSION_INTEGRATION=true` - Rationale: this exhaustive suite is intentionally excluded from default and release lanes while it remains useful only for historical debugging. - Replacement owner: `packages/cli/src/__tests__/extension-integration.test.ts` owns maintained built-extension coverage. 5. **CLI native binary build gate** - `packages/cli/src/__tests__/build-exe-cross.test.ts` - Pattern: four `describe.skipIf(!SHOULD_RUN_BUILD_EXE)(...)` suites for single-target, Windows-target, all-target, and default-target binary builds. - Gate: `FUSION_TEST_BUILD_EXE=1`, `FUSION_TEST_BUILD_EXE=true`, or `CI=true` - Rationale: cross-compiling native binaries is intentionally expensive and belongs in the binary/pre-release lane, not every local unit run. - Replacement owner: `packages/cli/src/__tests__/build-exe.test.ts` and bundle-output tests cover the default fast package contract; `build-exe-cross.test.ts` owns full cross-target coverage when the gate is enabled. 6. **POSIX-only shell syntax cases** - `packages/engine/src/__tests__/run-verification-command.test.ts` - `packages/engine/src/__tests__/verification-utils.test.ts` - Pattern: `const itPosix = onPosix ? it : it.skip` - Gate: skipped only on `process.platform === "win32"` - Rationale: a subset of tests uses POSIX shell syntax (`printf`, pipes, and shell quoting). The implementation still uses Node's portable `shell: true`; these specific fixtures are not portable to `cmd.exe`. - Replacement owner: platform-neutral cases in the same suite continue to run on Windows. 7. **Build-output checks are deterministic (no skip gate)** - `packages/cli/src/__tests__/bundle-output.test.ts` - `packages/dashboard/app/__tests__/build-output.test.ts` - Pattern: each suite builds required artifacts in `beforeAll` and then runs chunking/bundle assertions unconditionally. - Rationale: clean worktrees and CI environments should execute real output-contract assertions instead of silently skipping when `dist/` is absent. 8. **Skip gate string assertions are not skip markers** - `packages/cli/src/__tests__/ci-workflow.test.ts` - Pattern: assertions check that CI workflow text contains `describe.skipIf(...)` gate strings. - Rationale: this file does not skip tests itself; it verifies the workflow keeps the intentionally gated suites wired. ## Older Follow-up Reconciliation Previously tracked actionable skip follow-ups are now resolved and should not be treated as open backlog: - **FN-2085**: wildcard proxy POST body forwarding coverage is active. - **FN-2076 / FN-2106 / FN-2109**: NewAgentDialog and MissionInterviewModal rollback favorite-toggle regressions are active interaction tests. - The former single-file executor step-session alias skip is no longer present; ownership now lives in the split executor suites (`executor-*.test.ts`). Searches for those IDs in repository test code and docs now return no active TODO/skip markers tied to unresolved work. ## Policy When adding a new skip marker, include one of the following: - a clear environment/build gate explanation, or - a direct reference to the active test that owns equivalent coverage. Avoid opening follow-up tasks for intentional gate/alias skips unless behavior coverage is actually missing.