Fix native model imports and test generator configuration parity - #96
Merged
Conversation
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.
Native module-local output could import a schema directly while referencing
CommonModels, causingReferenceErrorat module load. The original parity CI missed that layout. Fix model ownership/imports and expand CI to exercise 236 configurations against two checked-in schemas.The matrix covers all 64 layout combinations (48 valid, 16 explicitly rejected contradictory placements), representative values for every other renderer option, and transport/import interactions. It compares exact file lists and SHA-256 hashes across JavaScript/native on Linux/macOS. Native tests assert the binding is actually invoked, distinguish full and hybrid routes, and include empty/rejected cases in the manifest contract. Generated models are loaded across all valid layouts, and runner integration covers YAML/JSON input, cleanup, preservation of user files, and unchanged writes.
The expanded cases also fix unsplit naming/tag behavior, shared and module-local ownership, custom suffix imports, standalone imports, request-config forwarding, empty client import paths, and description handling. Model namespace routing preserves URL strings and validation regexes. Both demo fixtures include shared-schema regressions; the configuration fixture activates ACL, pagination, builders, defaults, descriptions, deprecated endpoints, and domain errors.
Validation: full JS and native test suites, Rust regression test, typecheck, lint, TypeScript/native release builds, and local exact-hash comparison of 4,320 generated files across 472 fixture/configuration cases. Cross-platform checks run in the separate Renderer parity workflow. Arbitrary option strings/lists use representative values; generated runtime execution covers models.
incrementalremains a compatibility option with identical unchanged-write behavior for both values.