Skip to content

refactor(cli): cover start integration tests with effect lint (CLI-2414) - #6679

Open
7ttp wants to merge 5 commits into
7ttp/cli-2414-start-e2e-effect-lintfrom
7ttp/cli-2414-start-integration-effect-lint
Open

7ttp wants to merge 5 commits into
7ttp/cli-2414-start-e2e-effect-lintfrom
7ttp/cli-2414-start-integration-effect-lint

Conversation

@7ttp

@7ttp 7ttp commented Sep 19, 2026

Copy link
Copy Markdown
Member

TL;DR

brings the supabase start handler integration suite under the effect lint,
completing coverage of the command family

whats introduced?

  • removes the final start family lint exclusion
  • fixture writes run inside Effect through injected FileSystem/Path services, and env cases use the shared withEnvVar helper
  • error assertions use Cause.pretty
  • preserves existing scenarios and assertions, including container env precedence and empty values

ref:

@7ttp 7ttp self-assigned this Sep 19, 2026
@7ttp
7ttp added this pull request to stack #6677 September 19, 2026 13:23
@7ttp
7ttp requested a review from a team as a code owner September 19, 2026 13:23
@7ttp 7ttp changed the title refactor(cli): cover start integration tests with effect lint (CLI-2414) refactor(cli): cover start integration tests with effect lint (CLI-2414) Sep 19, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI Review

All eight findings were verified against the PR and trusted conventions. Five quality findings are confirmed: valuable fixture rationale was removed, two route callbacks redundantly provide filesystem services, 72 unnecessary suspend wrappers were added, three generators are needlessly nested, and one assertion no longer excludes timeout tags from non-Fail causes. Three findings are refuted because the existing service provision, strict generated-RSA fixture, and test-finalizer defect handling are valid. No major functional or security regression was found.

Findings

Severity Location Category Sources Claim
🟡 MINOR apps/cli/src/commands/start/start.integration.test.ts:2238 documentation claude The refactor removes numerous comments explaining non-obvious fixture choices, leaving important test rationale undocumented.
🟡 MINOR apps/cli/src/commands/start/start.integration.test.ts:3527 test-coverage claude The replacement assertion only excludes HealthCheckTimeoutError from Fail reasons, weakening the prior whole-cause absence check.
⚪ NIT apps/cli/src/commands/start/start.integration.test.ts:1056 test-quality claude Two route callbacks shadow the enclosing filesystem service and redundantly provide BunServices for every invocation.
⚪ NIT apps/cli/src/commands/start/start.integration.test.ts:2244 consistency claude The 72 Effect.suspend wrappers around withEnvVar bodies are redundant and inconsistent with the equivalent direct Effect.gen usage.
⚪ NIT apps/cli/src/commands/start/start.integration.test.ts:2342 readability claude Three tests unnecessarily nest a second Effect.gen behind return yield*.
Refuted findings (kept for transparency, not posted as review comments)
  • apps/cli/src/commands/start/start.integration.test.ts:4028 (consistency): The Twilio override test incorrectly lacks an outer Effect.provide(BunServices.layer).
    Refuted: All filesystem-dependent work is already inside the provided inner generator, and the command layer also includes BunServices. Adding an outer provider would only duplicate an existing provision.
  • apps/cli/src/commands/start/start.integration.test.ts:1570 (test-quality): The explicit RSA private-JWK schema is brittle and should be replaced with Schema.Unknown.
    Refuted: The fixture is not arbitrary input: it is a generated private RSA JWK, whose required material is exactly kty, n, e, d, p, q, dp, dq, and qi. Validating that shape makes the signing fixture explicit; other uses of Schema.Unknown do not establish that strict validation is erroneous here.
  • apps/cli/src/commands/start/start.integration.test.ts:2828 (error-handling): Using Effect.orDie in the two filesystem cleanup finalizers improperly converts recoverable PlatformError failures into defects.
    Refuted: These are test teardown finalizers, not operational recovery paths. Finalizers require an infallible typed error channel, and turning an unexpected cleanup failure into a visible test defect matches existing trusted repository practice rather than swallowing the failure.

Stats

Claude findings: 7 · Codex findings: 1 · Confirmed: 5 · Refuted: 3 · Uncertain: 0


Models: claude-opus-5 + gpt-5.6-sol · Trigger: auto · Workflow run

This review runs once per PR. A maintainer can request another with a /ai-review comment.

Comment thread apps/cli/src/commands/start/start.integration.test.ts
Comment thread apps/cli/src/commands/start/start.integration.test.ts Outdated
Comment thread apps/cli/src/commands/start/start.integration.test.ts Outdated
Comment thread apps/cli/src/commands/start/start.integration.test.ts Outdated
Comment thread apps/cli/src/commands/start/start.integration.test.ts Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant