test: add test tooling and documentation

- Add Makefile with convenient test targets (test, test-integration, test-env-up, test-env-down)
- Add .env.test with test-specific configuration
- Update .env.example with test configuration options and warnings
- Update README.md with comprehensive testing documentation
- Document all environment variables with safety warnings

This makes it easy to run tests without rate limiting issues while
keeping production security intact.
This commit is contained in:
2026-01-29 13:33:38 -05:00
parent 8126002eb9
commit f48013f80d
4 changed files with 113 additions and 1 deletions
+59
View File
@@ -0,0 +1,59 @@
.PHONY: help test test-integration test-all build build-force clean rebuild logs test-env-up test-env-down
# Default target
help:
@echo "Available targets:"
@echo " make test - Run unit tests"
@echo " make test-integration - Run integration tests with test mode enabled"
@echo " make test-all - Run all tests"
@echo " make build - Build and start containers"
@echo " make build-force - Force rebuild and start containers"
@echo " make clean - Stop and remove containers"
@echo " make rebuild - Clean, rebuild, and start containers"
@echo " make logs - Show container logs"
@echo " make test-env-up - Start containers with test mode enabled"
@echo " make test-env-down - Stop test environment"
# Run unit tests
test:
go test ./... -v -short
# Run integration tests with test mode enabled (avoids rate limiting)
test-integration:
@echo "Running integration tests with TEST_MODE enabled..."
TEST_MODE=true RATE_LIMIT_ENABLED=false go test ./cmd/server/tests -run TestIntegrationAPI -v -timeout 5m
# Run all tests
test-all: test test-integration
# Build and start containers
build:
podman compose up --build -d
# Force rebuild without cache
build-force:
podman compose build --no-cache
podman compose up -d
# Stop and remove containers
clean:
podman compose down -v
# Clean rebuild (remove volumes, rebuild, start)
rebuild: clean build
# Show container logs
logs:
podman compose logs -f
# Start containers with test mode enabled for integration testing
test-env-up:
@echo "Starting containers with test mode enabled..."
TEST_MODE=true RATE_LIMIT_ENABLED=false REQUESTS_PER_MINUTE=1000 podman compose up --build -d
@echo "Waiting for services to be ready..."
sleep 10
@echo "Test environment is ready!"
# Stop test environment
test-env-down:
podman compose down -v