# Docker Integration Tests This directory contains integration tests for Docker Compose deployment modes. ## Traefik Integration Tests Tests for Traefik reverse proxy integration in bundled, upstream, and none modes. ### Prerequisites - Docker and Docker Compose installed - `jq` for JSON parsing: `apt install jq` or `brew install jq` - `curl` for HTTP testing ### Running Tests ```bash # Run all tests ./traefik.test.sh all # Run specific mode tests ./traefik.test.sh bundled ./traefik.test.sh upstream ./traefik.test.sh none ``` ### Test Coverage #### Bundled Mode Tests - Traefik container starts with `traefik-bundled` profile - Traefik dashboard is accessible - Traefik API responds correctly - Services have proper Traefik labels - Routes are registered with Traefik #### Upstream Mode Tests - Bundled Traefik does not start - Services connect to external Traefik network - Services have labels for external discovery - Correct network configuration #### None Mode Tests - No Traefik container starts - Traefik labels are disabled - Direct port access works - Services accessible via published ports ### CI/CD Integration These tests can be run in CI/CD pipelines: ```yaml # Example GitHub Actions test-docker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install dependencies run: sudo apt-get install -y jq - name: Run Traefik integration tests run: ./tests/integration/docker/traefik.test.sh all ``` ### Troubleshooting #### Test cleanup issues If tests fail and leave containers running: ```bash docker compose -f docker-compose.test.yml down -v docker network rm traefik-public-test ``` #### Permission denied Make sure the test script is executable: ```bash chmod +x traefik.test.sh ``` #### Port conflicts Ensure ports 8080, 3000, 3001 are available before running tests.