From b57013202e705e2c56c6a57c6ed35f977e28ac4d Mon Sep 17 00:00:00 2001 From: Nanaloveyuki Date: Sun, 14 Jun 2026 05:40:51 +0800 Subject: [PATCH] :white_check_mark: cover parse-build invalid json parity --- src/BitLogger_test.mbt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/BitLogger_test.mbt b/src/BitLogger_test.mbt index 8f69e29..732637a 100644 --- a/src/BitLogger_test.mbt +++ b/src/BitLogger_test.mbt @@ -2698,6 +2698,7 @@ test "parsed configured logger keeps composition and runtime helper surface" { test "sync parse-build facades forward config errors" { let raw = "{\"sink\":{\"kind\":\"file\",\"path\":\"\"}}" + let malformed = "{" let configured_error = (fn() -> String raise ConfigError { ignore(parse_and_build_logger(raw)) @@ -2722,4 +2723,28 @@ test "sync parse-build facades forward config errors" { ConfigError::InvalidConfig(message) => message } inspect(library_error, content="File sink requires non-empty path") + + let configured_invalid_json = (fn() -> String raise ConfigError { + ignore(parse_and_build_logger(malformed)) + "no error" + })() catch { + ConfigError::InvalidConfig(message) => message + } + inspect(configured_invalid_json.contains("Invalid JSON:"), content="true") + + let application_invalid_json = (fn() -> String raise ConfigError { + ignore(parse_and_build_application_logger(malformed)) + "no error" + })() catch { + ConfigError::InvalidConfig(message) => message + } + inspect(application_invalid_json.contains("Invalid JSON:"), content="true") + + let library_invalid_json = (fn() -> String raise ConfigError { + ignore(parse_and_build_library_logger(malformed)) + "no error" + })() catch { + ConfigError::InvalidConfig(message) => message + } + inspect(library_invalid_json.contains("Invalid JSON:"), content="true") }