Skip to content

test(api): stabilize official workflow lifecycle integration timeout #30181

Description

@seven332

Problem and evidence

The Turbo test-api (4) job for PR #30093 failed in an Official Workflow
public-boundary integration test even though that PR contains no Turbo changes.

Observed job:

The failing test is
installs, guards, reconfigures, retires, and uninstalls through public boundaries
in
turbo/apps/api/src/signals/routes/__tests__/official-workflows.test.ts.
It exceeded Vitest's default 5-second test limit and completed at 5.331 seconds.
The shard otherwise passed 409 tests.

Repository inspection shows that this is one roughly 990-line scenario containing
64 sequential awaited boundaries and about 60 route-client calls. At the timeout
boundary, the log had reached the expected late-stage copy-upload failure path, so
there is no evidence that one request, promise, or lifecycle phase failed to
settle. Focused runs have varied from 3.98 seconds to 5.177 seconds, while an
earlier CI run completed the same scenario in 2.156 seconds. The supported root
cause is cumulative integration-test work with insufficient margin under shard
contention, combined with a test boundary too coarse to identify the phase when a
real regression occurs.

Decision

Keep this issue and correct its scope: stabilize and improve the diagnostic
granularity of the Official Workflow lifecycle integration coverage. Do not treat
the failure as evidence of a product lifecycle race unless a focused test exposes
one.

Constraints

  • Keep coverage at public API entry points; do not replace it with unit coverage
    or direct internal-service testing.
  • Do not increase the timeout or skip coverage.
  • Keep each scenario independently isolated and cleanup-safe; do not make tests
    depend on state created by another test.
  • Preserve the existing lifecycle behavior. Runtime changes are out of scope
    unless a focused reproduction demonstrates a product defect.

Acceptance criteria

  • The oversized lifecycle scenario is reorganized into focused, independently
    diagnosable integration tests that complete within the normal 5-second budget.
  • Public-boundary coverage remains for discovery and access guards, input
    validation and concurrent installation, direct-mutation guards,
    reconfiguration, active and retired copy behavior, copy failure compensation,
    uninstall, reinstall, and catalog retirement.
  • Every new scenario owns its setup and cleanup and passes in repeated focused
    runs without custom timeouts or skipped assertions.
  • The complete Official Workflow test file and the CI-equivalent API shard pass.
  • Relevant API formatting, linting, type checking, dependency analysis, and
    tests pass.

Scope

This issue is intentionally separate from Runner GC PR #30093. It covers the
Official Workflow integration-test structure and any product defect proven while
making those public-boundary scenarios deterministic.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingtest

Type

No type

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions