test(odetovibe/load): cover 6 Load domain test gaps#67
Open
scorpevans wants to merge 7 commits intomainfrom
Open
test(odetovibe/load): cover 6 Load domain test gaps#67scorpevans wants to merge 7 commits intomainfrom
scorpevans wants to merge 7 commits intomainfrom
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nly conflicts
Adds import-level conflict detection to hasConflict: when a generated
import declaration changes type-only status relative to the existing
file (e.g. "import type { Foo }" → "import { Foo }"), StrictMergeWriter
now writes to .ode.ts rather than silently leaving both declarations
coexisting after merge.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…roperties Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…trict modes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-check fails Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…for multi-dot names Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…er tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Owner
Author
|
Reviewed. Checked: (1) hasConflict import detection logic is correct — matches on specifier + namespace status, returns true only when isTypeOnly differs; (2) compileErrors test reliably produces TS2304 via the isolated fallback project (no tsconfig in tmpdir); (3) multi-dot conflict path test verifies path.extname behavior; (4) interface properties drop test correctly documents the ownership contract; (5) writeFiles merge/strict tests exercise the full orchestration path; (6) all 58 tests pass. Source change in write-file.ts is minimal and well-scoped. |
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.
Summary
Covers the 6 Load domain test gaps identified in the gap analysis. Each gap is a separate commit.
formatCoderuns on both the new-file fallback path and the existing-file merge path forMergeWriterandStrictMergeWriterStrictMergeWriterconflict on import type-only change: adds import-level conflict detection tohasConflict— when codegen changes an import fromimport type { Foo }toimport { Foo }(or vice versa), strict mode now writes to.ode.tsinstead of silently leaving both coexisting after mergeMergeWriterwith generated interface properties: documents the ownership contract — existing interfaces are user-owned; generated properties are silently dropped even when the stub has new fieldswriteFilesorchestration in merge and strict modes: two orchestration-level tests that exercise the fullwriteFilescall with"merge"and"strict"contextcompileErrorsfield onWriteResult: verifies that the field is populated (and the file NOT written) when generated content contains undeclared names (TS2304).ode.tspath for multi-dot filenames: confirms.odeis inserted before the last extension (access-building.test.ts→access-building.test.ode.ts, notaccess-building.ode.test.ts)Test plan
pnpm --filter odetovibe test src/load/index.test.ts— 58 tests pass (was 44)write-file.ts(hasConflict) — verified by the new test🤖 Generated with Claude Code