| #!/bin/sh | |
| # | |
| # Copyright (c) 2025 Google LLC | |
| # | |
| test_description=':(optional) paths' | |
| . ./test-lib.sh | |
| test_expect_success 'var=:(optional)path-exists' ' | |
| test_config a.path ":(optional)path-exists" && | |
| >path-exists && | |
| echo path-exists >expect && | |
| git config get --path a.path >actual && | |
| test_cmp expect actual | |
| ' | |
| test_expect_success 'missing optional value is ignored' ' | |
| test_config a.path ":(optional)no-such-path" && | |
| # Using --show-scope ensures we skip writing not only the value | |
| # but also any meta-information about the ignored key. | |
| test_must_fail git config get --show-scope --path a.path >actual && | |
| test_line_count = 0 actual | |
| ' | |
| test_expect_success 'missing optional value is ignored in multi-value config' ' | |
| test_when_finished "git config unset --all a.path" && | |
| git config set --append a.path ":(optional)path-exists" && | |
| git config set --append a.path ":(optional)no-such-path" && | |
| >path-exists && | |
| echo path-exists >expect && | |
| git config --get --path a.path >actual && | |
| test_cmp expect actual | |
| ' | |
| test_done |