tests: shunit2: add test for _jshn_append via JSON script
authorPetr Štetiar <[email protected]>
Thu, 13 Nov 2025 11:56:15 +0000 (11:56 +0000)
committerÁlvaro Fernández Rojas <[email protected]>
Mon, 17 Nov 2025 18:31:02 +0000 (19:31 +0100)
Add another test which verifies _jshn_append leading space fix in commit
82cb5fd66af9 ("libubox: Drop extraneous space when appending values to
variable") by appending keys to JSON objects, making sure there is no
leading space on the first key when adding second key.

  test_jshn_append_via_json_script
  ASSERT:expected:<first> but was:< first>
  ASSERT:expected:<first second> but was:< first second>

Tests: #16
Signed-off-by: Petr Štetiar <[email protected]>
Link: https://github.com/openwrt/libubox/pull/30
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
tests/shunit2/tests.sh

index c24f634ee8080f85d6916716832fb528c6b72e3e..8d0a644636d99d086e71a9229db176731c0492f7 100755 (executable)
@@ -452,4 +452,25 @@ test_jshn_add_multi() {
        set -u
 }
 
+test_jshn_append_via_json_script() {
+       JSON_PREFIX="${JSON_PREFIX:-}"
+       . ../../sh/jshn.sh
+
+       # __SHUNIT_SHELL_FLAGS='u' results in 'line 6: JSON_UNSET: unbound variable' in json_cleanup()
+       set +u
+
+       # Test appending first key to empty variable without leading space
+       json_init
+       json_add_string "first" "value1"
+       json_get_keys keys
+       assertEquals "first" "$keys"
+
+       # Test appending second key should maintain no leading space on first key
+       json_add_string "second" "value2"
+       json_get_keys keys
+       assertEquals "first second" "$keys"
+
+       set -u
+}
+
 . ./shunit2/shunit2