Files
fusion/docs/skipped-test-inventory.md
Fusion f240683fc8 feat(FN-3720): split executor.test.ts into eight focused suites and add she
The merge splits the large monolithic `executor.test.ts` into seven focused test suites covering core logic, pause behavior, prompt handling, recovery, review verdicts, step sessions, and worktree operations, and adds shell context hook plumbing across the dashboard, desktop, and mobile packages to

Fusion-Task-Id: FN-3720
2026-05-07 23:21:05 -07:00

5.9 KiB

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:

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: <suite 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.