From 2e4a3cf59df1bc85b0f626f598a5d45bcae8d77a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 27 Jun 2026 08:58:01 +0900 Subject: fix(json): include property name in required-property errors The jsonschema crate reports a missing required property against its parent object, leaving the instance path empty at the root. This skipped the "PROPERTY : MESSAGE" formatting that Composer produces. Append the missing property name to the path so the output shape matches. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/tests/command/validate_command_test.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'crates/shirabe/tests/command') diff --git a/crates/shirabe/tests/command/validate_command_test.rs b/crates/shirabe/tests/command/validate_command_test.rs index 933a0ff..c40f66b 100644 --- a/crates/shirabe/tests/command/validate_command_test.rs +++ b/crates/shirabe/tests/command/validate_command_test.rs @@ -74,13 +74,14 @@ fn provide_validate_tests() -> Vec { ValidateCase { // WORDING NOTE: upstream asserts justinrainbow's property-prefixed strings // "- name : The property name is required" / "- description : The property description - // is required". The jsonschema crate reports the same required violations as - // "\"name\" is a required property" (no property prefix; the property name is embedded - // in the message). Matches the divergence already accepted in json_file_test. + // is required". The jsonschema crate phrases the message differently, but the property + // prefix is reconstructed, so the shape matches: + // "- name : \"name\" is a required property". Matches the divergence already accepted in + // json_file_test. name: "passing but with warnings", composer_json: publish_data_stripped.clone(), command: vec![], - expected: "./composer.json is valid for simple usage with Composer but has\nstrict errors that make it unable to be published as a package\nSee https://getcomposer.org/doc/04-schema.md for details on the schema\n# Publish errors\n- \"name\" is a required property\n- \"description\" is a required property\n# General warnings\n- No license specified, it is recommended to do so. For closed-source software you may use \"proprietary\" as license.", + expected: "./composer.json is valid for simple usage with Composer but has\nstrict errors that make it unable to be published as a package\nSee https://getcomposer.org/doc/04-schema.md for details on the schema\n# Publish errors\n- name : \"name\" is a required property\n- description : \"description\" is a required property\n# General warnings\n- No license specified, it is recommended to do so. For closed-source software you may use \"proprietary\" as license.", }, ValidateCase { name: "passing without publish-check", -- cgit v1.3.1