This commit adds comprehensive Go docstrings to the `pkg/mining` package,
including `mining.go`, `manager.go`, `manager_interface.go`, and `xmrig.go`.
The docstrings cover all public types, interfaces, functions, and methods,
and include examples where appropriate to illustrate usage.
This change improves the developer experience by making the code easier to
understand and use.
Added tests for StartMiner and StopMiner in the manager, increasing test coverage for the pkg/mining package.
Refactored the findMinerBinary function to fall back to the system PATH, making the application more robust and easier to test.
This commit introduces a number of new tests for the `pkg/mining` package,
increasing the overall test coverage from 8.2% to 41.4%.
The following changes were made:
- Added tests for the `XMRigMiner` struct, including its methods for
installation, starting, stopping, and getting stats.
- Added tests for the `Service` layer, including the API endpoints for
listing, starting, stopping, and getting stats for miners.
- Added tests for the `Manager`, including starting and stopping multiple
miners, collecting stats, and getting hashrate history.
- Introduced a `ManagerInterface` to decouple the `Service` layer from the
concrete `Manager` implementation, facilitating testing with mocks.
- Fixed a failing test on Windows by creating a Windows-compatible
dummy executable.
- Improved encapsulation in tests by adding and using getter methods for
private fields.