Integrate official Basic output tests
Merged
HA
1mo ago+664+664+012345678901234567890123456789-4-4-0123456789
Summary
This PR integrates the official JSON Schema Draft 2020-12 Basic output test suite into Blaze and fixes an annotation value shaping issue in Standard Basic output.
Changes
- Unmask Official Output Tests:
- Updated
vendor/jsonschema-test-suite.maskto unmaskoutput-tests/draft2020-12/(escape.json,general.json,readOnly.json,type.json, andoutput-schema.json), while keeping other drafts and formats masked.
- Updated
- Preserve Annotation Shapes:
- Added
is_array_aggregated_keyword()helper insrc/output/output_standard.ccandports/javascript/index.mjs. - Collection/aggregation keywords (
properties,patternProperties,additionalProperties,unevaluatedProperties,contains) continue to emit array annotations (unknown[]). - Scalar / metadata keywords (
readOnly,title,description,default, etc.) now emit their scalar / JSON value shape (annotation.second.back()) rather than wrapping them into arrays.
- Added
- Official Test Suite Runner:
- Added
test/output/output_official_draft2020_12_suite.ccregistered intest/output/CMakeLists.txtto execute all official Draft 2020-12 content output tests againstoutput-schema.json.
- Added
- TypeScript Definitions & JavaScript Port:
- Updated
StandardOutputAnnotationEntry.annotationtype fromunknown[]tounknowninports/javascript/index.d.mts. - Updated
SimpleOutput.toBasicinports/javascript/index.mjsto match the C++ output shaping.
- Updated
- Fixtures & Cleanups:
- Updated
test/output/output_standard_basic.jsonfor scalartitleannotations. - Removed the resolved TODO for official output tests in
src/output/include/sourcemeta/blaze/output_standard.hwhile keeping Detailed/Verbose TODOs.
- Updated
Verification
- Official Draft 2020-12 Output Suite: 4/4 passed (100%)
- Local Basic & Flag Output Suites: 58/58 passed, 28/28 passed
- Output Unit Suite: 673/673 passed
- Evaluator Annotation & Trace Suites: 6/6 passed
- JavaScript Output Tests: Passed