Schema additions for issues #37-41: New models: - Domain (#37): Life domains (work, marriage, homelab, etc.) - Idea (#38): Brain dumps with pgvector embeddings - Relationship (#39): Generic entity linking (blocks, depends_on) - Agent (#40): ClawdBot agent tracking with metrics - AgentSession (#40): Conversation session tracking - WidgetDefinition (#41): HUD widget registry - UserLayout (#41): Per-user dashboard configuration Updated models: - Task, Event, Project: Added domainId foreign key - User, Workspace: Added new relations New enums: - IdeaStatus: CAPTURED, PROCESSING, ACTIONABLE, ARCHIVED, DISCARDED - RelationshipType: BLOCKS, BLOCKED_BY, DEPENDS_ON, etc. - AgentStatus: IDLE, WORKING, WAITING, ERROR, TERMINATED - EntityType: Added IDEA, DOMAIN Migration: 20260129182803_add_domains_ideas_agents_widgets
1.8 KiB
1.8 KiB
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
jqfor JSON parsing:apt install jqorbrew install jqcurlfor HTTP testing
Running Tests
# 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-bundledprofile - 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:
# 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:
docker compose -f docker-compose.test.yml down -v
docker network rm traefik-public-test
Permission denied
Make sure the test script is executable:
chmod +x traefik.test.sh
Port conflicts
Ensure ports 8080, 3000, 3001 are available before running tests.