Skip to content

Testing Guide

Run all unit tests (default):

Terminal window
go test ./...

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

Prerequisites:

  • PostgreSQL running (Docker: docker compose up -d postgres)
  • 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/ecdsa/test.env -- go test -tags=integration ./internal/ecdsa
# Consumer API tests
go test -tags=integration ./services/consumer/api
# OMS (Object Management System) tests
go test ./internal/oms
  • Unit Tests: internal/oms, internal/domain/*, internal/geoip, internal/jwt, internal/locks, internal/store, internal/txnlib
  • Integration Tests: services/consumer/api, internal/ecdsa (with env vars)
  • internal/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 postgres nats redis
# Run all tests
go test ./...
# Run integration tests only
go test -tags=integration ./...