From 616aa6f2f1a101b8c3d7e4a2e300071dff2fa7ec Mon Sep 17 00:00:00 2001 From: rootiest Date: Sat, 2 May 2026 23:33:23 -0400 Subject: [PATCH] docs, test: add config management documentation and tests --- README.md | 19 +++++++++++++++++++ tests/run_tests.sh | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/README.md b/README.md index 0258693..70a0cac 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,9 @@ Options: --[no-]copy Copy result to clipboard --[no-]notify Show desktop notification --desktop GUI mode: pick โ†’ copy โ†’ notify + --get-config Print the current configuration + --set-config Update the configuration (e.g. --set-config desktop --copy) + --reset-config Restore the configuration file to its default values --install Install to ~/.local/share/ and symlink to ~/.local/bin/ --help, -h Show this help message ``` @@ -102,6 +105,22 @@ copy = true # copy result to clipboard notify = true # show desktop notification with the copied value ``` +You can also use the CLI to manage your configuration: + +```bash +# View current config +color-tool --get-config + +# Update specific keys (e.g., enable swatch by default) +color-tool --set-config defaults --swatch + +# Set output format for desktop mode +color-tool --set-config desktop output=rgba + +# Reset to factory defaults +color-tool --reset-config +``` + ## ๐Ÿงช Testing The project includes a comprehensive test suite that verifies color conversion, configuration loading, and system integrations (clipboard/notifications) using mocks. diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 1576eb5..12d3037 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -150,6 +150,24 @@ else echo "FAIL (notify.log not created)" fi +# 8. Config Management +it "manages configuration via CLI" +mkdir -p "$HOME/.config/color-tool" +"$COLOR_TOOL" --reset-config >/dev/null + +# Test --set-config +"$COLOR_TOOL" --set-config defaults output=rgba +output=$("$COLOR_TOOL" --get-config) +if [[ "$output" == *"output = \"rgba\""* ]]; then + # Test --reset-config + "$COLOR_TOOL" --reset-config >/dev/null + output=$("$COLOR_TOOL" --get-config) + assert_contains "$output" "output = \"hex\"" +else + echo "FAIL" + echo " Expected to find: output = \"rgba\"" + echo " Actual output: $output" +fi # 9. JSON Output it "outputs selected formats as JSON" -- 2.52.0