Skip to content

Testing Guide

Run all unit tests (default):

Terminal window
go test ./...

Integration tests require external services (NATS, Redis) and use the -tags=integration build tag.

Prerequisites:

  • NATS running (Docker: docker compose up -d nats)
  • Redis running (Docker: docker compose up -d redis)

Run all integration tests:

Terminal window
go test -tags=integration ./...

Run specific package:

Terminal window
# ECDSA tests (requires environment variables)
op run --env-file=internal/support/ecdsa/test.env -- go test -tags=integration ./internal/support/ecdsa
# Consumer API tests
go test -tags=integration ./services/consumer/api
# OMS (Object Management System) tests
go test ./internal/domain/oms
  • Unit Tests: internal/domain/oms, internal/domain/*, internal/support/geoip, internal/support/jwt, internal/support/locks, internal/infra/store, internal/domain/txnlib
  • Integration Tests: services/consumer/api, internal/support/ecdsa (with env vars)
  • internal/support/ecdsa - requires ST8_PRIVATE_KEY and ST8_PUBLIC_KEY env vars
  • services/consumer/api - requires NATS running

Tests work out-of-the-box in CI environments:

Terminal window
# Start required services (for integration tests)
docker compose up -d nats redis
# Run all tests
go test ./...
# Run integration tests only
go test -tags=integration ./...