test(ansible): Phase 1 Step 1.5 — error propagation, become, facts & idempotency
104 new tests covering cross-cutting concerns:
- Error propagation (68): getHosts, matchesTags, evaluateWhen,
templateString, applyFilter, resolveLoop, handleNotify, normalizeConditions
- Become/sudo (8): enable/disable, passwordless, default user
- Fact gathering (9): Ubuntu/CentOS/Alpine/Debian os-release parsing
- Idempotency (8): group exists, key present, docker compose up-to-date
Total ansible tests: 438. Phase 1 complete.
Co-Authored-By: Virgil <virgil@lethean.io>