fix(tests): e2e-journey Step 4 uses offline data validate instead of push --dry-run#318
Merged
Merged
Conversation
… --dry-run Step 4 only ran for real once #316 fixed the create_cluster exit-127 regression (the old vacuous guard() and then the step-1 crash had hidden it). It failed with "table name is required (set --table)". `dataset push --dry-run` is no longer an offline check: the current CLI runs cluster discovery AND a Bound-PVC check (resolveClusterTarget with needPVC=true) before its dry-run stop, and this harness's credential-free stub creates no PVC — so that path can't pass here regardless of flags. Switch to `tracebloc data validate <spec>`, the CLI's purpose-built offline schema check (validates against the embedded ingest.v1.json, no cluster) — exactly the "offline-validatable, no creds, no reachable platform" smoke the step was always meant to be. Assert both directions (valid spec passes, invalid spec rejected) so a green run isn't vacuous, mirroring the guard() self-test. Spec shape matches the CLI's own known-good fixture (testdata/smoke/valid-image-classification.yaml). Verified against the real released binary (tracebloc/cli v0.6.0, which releases/latest resolves to): valid -> exit 0, missing-intent -> exit 2. Closes #317. Follow-up to #316 / #310. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
divyasinghds
approved these changes
Jul 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Closes #317. Follow-up to #316 (which fixed the
create_clusterexit-127 regression that was stopping the E2E last-mile journey before Step 4 ever ran).With #316 merged, the E2E job reaches Step 4 for the first time with a working
guard()and fails:Why the old Step 4 can't work here
dataset push --dry-runis no longer an offline check. The current CLI (internal/cli/data.go) runs cluster discovery and a Bound-PVC check (resolveClusterTarget(..., needPVC=true)) and a destination-table check before the dry-run stop. This harness's credential-free stub creates no PVC, sodataset push --dry-runcan't pass against it regardless of which flags we add.Fix
Switch Step 4 to
tracebloc data validate <spec>— the CLI's purpose-built offline schema check (validates a spec against the embeddedingest.v1.json, never touches the cluster). That's exactly the "offline-validatable, no creds, no reachable platform" smoke the step was always documented to be.testdata/smoke/valid-image-classification.yaml); the/data/sharedpaths are schema-only (validate never reads them).intent) is rejected (exit 2) — so a green run isn't vacuous, same discipline as theguard()self-test.Verification
Built the actual released binary
tracebloc/cliv0.6.0 (whatreleases/latestresolves to; the version the E2E installs) and ran both files:bash -nclean.🤖 Generated with Claude Code
Note
Low Risk
Test-only change to the E2E journey script; no production code or runtime behavior is modified.
Overview
Step 4 of
e2e-journey.shno longer runstracebloc dataset push … --dry-runon a sample CSV. It now exercisestracebloc data validateagainst a generatedIngestConfigYAML (aligned with the CLI smoke fixture), which stays credential-free and does not need cluster discovery or a Bound PVC.The step asserts both outcomes: a complete spec must exit 0, and a spec missing required
intentmust fail non-zero so a broken validator cannot pass vacuously. Header comments for the journey are updated to describe this offline schema smoke instead of dataset push dry-run.Reviewed by Cursor Bugbot for commit 6db20af. Bugbot is set up for automated code reviews on this repo. Configure here.