This PR introduces a comprehensive test suite for color-tool and improves the release workflow with label-based exclusions.
🧪 Test Suite
Isolated Mock Environment: Tests run in a temporary directory with a restricted PATH.
Mocked Integrations:
notify-send: Captures notification payloads to verify urgency and content.
wl-copy: Captures clipboard content.
python3: Simulates the KDE color picker behavior.
Coverage:
Basic and multi-format color conversions.
Configuration file loading and overrides.
Clipboard and notification triggering.
Documentation: Added a section to README.md explaining how to run the tests.
🚀 CI Improvements
Release Label Exclusions: The release workflow now checks for Kind/Testing or Kind/Documentation labels. If either is present, the automatic release and tag generation will be skipped on merge to main.
Usage
To run the tests locally:
./tests/run_tests.sh
Verified all 7 tests passing in the local environment and confirmed the workflow logic for label filtering.
This PR introduces a comprehensive test suite for `color-tool` and improves the release workflow with label-based exclusions.
### 🧪 Test Suite
- **Isolated Mock Environment**: Tests run in a temporary directory with a restricted `PATH`.
- **Mocked Integrations**:
- `notify-send`: Captures notification payloads to verify urgency and content.
- `wl-copy`: Captures clipboard content.
- `python3`: Simulates the KDE color picker behavior.
- **Coverage**:
- Basic and multi-format color conversions.
- Configuration file loading and overrides.
- Clipboard and notification triggering.
- **Documentation**: Added a section to `README.md` explaining how to run the tests.
### 🚀 CI Improvements
- **Release Label Exclusions**: The release workflow now checks for `Kind/Testing` or `Kind/Documentation` labels. If either is present, the automatic release and tag generation will be skipped on merge to `main`.
### Usage
To run the tests locally:
```bash
./tests/run_tests.sh
```
Verified all 7 tests passing in the local environment and confirmed the workflow logic for label filtering.
- Implement tests/run_tests.sh with mocked environment
- Cover color conversion, multi-format output, and config loading
- Verify clipboard and notification integrations via mocks
- Document testing procedure in README.md
Add a condition to the release workflow to skip execution if the PR
is labeled with 'Kind/Testing' or 'Kind/Documentation'. This prevents
unnecessary releases for non-functional changes.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR introduces a comprehensive test suite for
color-tooland improves the release workflow with label-based exclusions.🧪 Test Suite
PATH.notify-send: Captures notification payloads to verify urgency and content.wl-copy: Captures clipboard content.python3: Simulates the KDE color picker behavior.README.mdexplaining how to run the tests.🚀 CI Improvements
Kind/TestingorKind/Documentationlabels. If either is present, the automatic release and tag generation will be skipped on merge tomain.Usage
To run the tests locally:
Verified all 7 tests passing in the local environment and confirmed the workflow logic for label filtering.
test: add comprehensive bash test suiteto ci/test: add test suite and release label exclusions