towerops-agent/src
Graham McIntire 0b3cc9121e
Add comprehensive unit test coverage (29.19%)
Add 73 unit tests covering all testable business logic:

- src/snmp/types.rs: 100% coverage (17/17 lines)
  * SnmpError display formatting
  * SnmpValue conversions (as_i64, as_f64)

- src/snmp/client.rs: 34.4% coverage (32/93 lines)
  * OID parsing/formatting/validation
  * SNMP value conversion for all types
  * Error mapping from snmp crate
  * Helper functions (starts_with, format_oid)

- src/ping.rs: 65.2% coverage (58/89 lines)
  * ICMP checksum calculation and verification
  * Echo request packet building
  * Reply packet parsing (raw and IP-wrapped)
  * IP header length extraction (IHL field)
  * Error handling for invalid packets

- src/version.rs: 54.0% coverage (27/50 lines)
  * Version parsing with optional 'v' prefix
  * Version comparison and sorting
  * Docker Hub response deserialization
  * Latest version extraction from tags

- src/websocket_client.rs: 7.7% coverage (17/221 lines)
  * SnmpValue to string conversion
  * Agent ID generation
  * Phoenix message serialization/deserialization
  * Helper functions (get_uptime_seconds, get_local_ip)

- src/main.rs: 20.0% coverage (11/55 lines)
  * SimpleLogger enabled() logic
  * HTTP/HTTPS to WebSocket URL conversion

- .gitlab-ci.yml: Add 'cargo test' to CI pipeline

Uncovered code requires integration testing:
- Network I/O (WebSocket, HTTP, Docker Hub API)
- System privileges (raw ICMP sockets)
- External services (SNMP devices, WebSocket servers)
- Runtime initialization (tokio main, logger setup)

All 73 tests pass. No test failures.
2026-01-19 15:07:00 -06:00
..
snmp Add comprehensive unit test coverage (29.19%) 2026-01-19 15:07:00 -06:00
health.rs Add comprehensive unit test coverage (29.19%) 2026-01-19 15:07:00 -06:00
main.rs Add comprehensive unit test coverage (29.19%) 2026-01-19 15:07:00 -06:00
ping.rs Add comprehensive unit test coverage (29.19%) 2026-01-19 15:07:00 -06:00
proto.rs Fix clippy warnings to pass CI build 2026-01-16 18:02:33 -06:00
version.rs Add comprehensive unit test coverage (29.19%) 2026-01-19 15:07:00 -06:00
websocket_client.rs Add comprehensive unit test coverage (29.19%) 2026-01-19 15:07:00 -06:00