Skip to content

Testing Overview

Quality evidence has three levels. Code that exists is not a live deployment.

Level Name Proves Does not prove
1 Unit / component Isolated Go and script behavior Windows Service, systemd, Docker, reboot
2 Integration Optional Mongo-backed tests when URI is set Customer installers, reboot, rollback
3 Live E2E Real OS/Docker lab install, health, reboot, update Future releases, other hosts, production

Automated tests and live E2E are not the same. A green go test ./... does not mean a customer host was installed.

Pyramid

flowchart TB
  live[Live E2E — lab hosts, commit-scoped]
  deploy[Installer / package script tests]
  http[HTTP / inbound / auth handlers]
  unit[Unit: decode, validate, config, calc]
  unit --> http --> deploy --> live
Layer Risk covered Automated? Live?
Unit Contract, types, config fail-closed Yes (*_test.go) No
HTTP Envelope, status codes, JSON/XML Yes No
Mongo integration Persist/replay against a lab URI Conditional Not default CI
Script tests NO-OP, rollback helpers, SHA, ports Yes (scripts/**/tests) Mock/static
Live E2E Install, reboot, ForceRedeploy, inbound POST No Lab only

Inventory (repository text, not a live re-run of this docs task)

  • 45 Go *_test.go files; 308 func Test matches (3 helper files have zero tests)
  • 16 script test files under scripts/**/tests/
  • CI runs go test ./... and go test -race ./.... It does not run PowerShell/Bash installer suites
  • Mongo tests skip unless MONGODB_INTEGRATION_TEST_URI is set
  • No dedicated internal/migration/*_test.go; empty-registry behavior is covered in command_test.go. Production migrate registers three index migrations

Historical vs automated

Earlier written lab pages and operator-declared commit e2202ac qualification are recorded on Live E2E Acceptance. This documentation change did not re-execute those host tests.

See Test strategy, Test matrix, and Release acceptance checklist.