Skip to content

Plan one working happy path for every command the binary answers to - #170

Open
wmadden-electric wants to merge 1 commit into
mainfrom
plan-e2e-coverage
Open

Plan one working happy path for every command the binary answers to#170
wmadden-electric wants to merge 1 commit into
mainfrom
plan-e2e-coverage

Conversation

@wmadden-electric

@wmadden-electric wmadden-electric commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

The prisma binary answers to 89 commands. 40 have an e2e test. 49 do not.

Counted by walking --help from the root through every group, diffed against the describeCommand blocks in packages/cli/e2e/*.e2e.ts. Nothing in the suite names a command the binary does not mount.

What the test has to be

One happy path per command, run through the assembled binary, doing the thing and succeeding. Not --help, not "it parses its arguments", not "it fails honestly without credentials" — those prove a command is reachable, not that it works.

The reason this repo has to do it rather than lean on the owning repos: the product repos test their commands exhaustively, but none of them can reproduce the configuration this binary assembles. The mount paths, the engine version actually linked, several families' config sections at once, the credential wiring, and the dependency tree inside the published tarball exist only here. A command can pass its owner's entire suite and still be broken the moment it is mounted.

26 of the 49 come from other packages — 22 from @prisma/orm-toolchain, 4 from @prisma/composer — and not one is run by this repo's e2e suite.

The fixtures decide the order, not the command groups

Most of the 49 are blocked on the same few things, so the work is to build those and the commands follow in bulk:

  • A deployed service unlocks ~16 — the seven service deployment verbs, service open, service show, the five service domain verbs, and build logs. Highest value and most expensive: it creates real infrastructure the suite must then remove.
  • A project directory with a contract unlocks most of the ORM familyformat, orm init, contract, the eight migration verbs, ref. No API needed; tests/fixtures/orm-project already exists to build on.
  • A database unlocks the restdb init|schema|sign|update|verify and migrate. The suite already creates Prisma Postgres databases, so this is wiring.
  • Smaller ones: a GitHub repo for git connect|disconnect, a second workspace for project transfer, a project with real backups for postgres restore.

Four need a ruling before anyone writes them

  • auth login drives a browser, and every other test authenticates with a service token — so the one command whose job is obtaining a credential is the one the suite cannot exercise normally.
  • feedback posts real feedback to the CLI team unless it can be pointed at a test endpoint.
  • composer dev/log never settle on their own, so "happy path" needs a definition — started, served one request, shut down cleanly.
  • lsp speaks LSP on stdio; its happy path is an answered initialize, a different harness from everything else here.

Plan only, no code. Nothing to be written as a skipped test in the meantime — a skipped test reads as coverage.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@wmadden-electric, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 94 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 200ea201-7b5e-42e0-a7d0-4063b8c30b28

📥 Commits

Reviewing files that changed from the base of the PR and between 55193f7 and d4f0318.

📒 Files selected for processing (1)
  • .drive/projects/prisma-cli-v8/plan.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Aug 12, 2026

Copy link
Copy Markdown

Open in StackBlitz

npx https://pkg.pr.new/@prisma/cli@170
npx https://pkg.pr.new/@prisma/cli-engine@170

commit: d4f0318

@wmadden-electric wmadden-electric changed the title Plan e2e coverage for every mounted command Plan e2e coverage for every command the binary answers to Aug 13, 2026
The binary answers to 89 commands, counted by walking --help from the
root. 40 have an e2e test. 49 do not.

The requirement is one happy path per command, run through the assembled
binary and succeeding — not --help, not "it parses its arguments". The
product repos test their own commands exhaustively but cannot reproduce
the configuration this binary assembles: the mount paths, the linked
engine version, several families' config sections at once, the
credential wiring, and the published tarball's dependency tree exist
only here.

The 49 are blocked on a handful of shared fixtures rather than on
themselves, so the plan orders the fixtures: a deployed service unlocks
about 16, an ORM project directory unlocks most of that family, a
database unlocks the rest. Four commands need a ruling before anyone
writes them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric wmadden-electric changed the title Plan e2e coverage for every command the binary answers to Plan one working happy path for every command the binary answers to Aug 13, 2026
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.

2 participants