anonpenguin 619dfe1ddf refactor(tests): remove DebrosFramework integration tests and update blog scenario tests
- Deleted the DebrosFramework integration test file to streamline the test suite.
- Updated blog API server to import reflect-metadata for decorator support.
- Changed Docker Compose command for blog integration tests to run real tests.
- Modified TypeScript configuration for Docker to target ES2022 and enable synthetic default imports.
- Removed obsolete Jest configuration and setup files for blog scenario tests.
- Cleaned up global test setup by removing console mocks and custom matchers.
2025-07-03 07:00:54 +03:00

156 lines
3.9 KiB
YAML

services:
# Bootstrap node for peer discovery
blog-bootstrap:
build:
context: ../../../../
dockerfile: tests/real-integration/shared/infrastructure/docker/Dockerfile.bootstrap
environment:
- NODE_TYPE=bootstrap
- NODE_ID=blog-bootstrap
- SWARM_KEY_FILE=/data/swarm.key
volumes:
- ./swarm.key:/data/swarm.key:ro
- bootstrap-data:/data/ipfs
networks:
- blog-network
ports:
- "4001:4001"
healthcheck:
test: ["CMD", "sh", "-c", "ipfs id >/dev/null 2>&1"]
interval: 10s
timeout: 5s
retries: 5
# Blog API Node 1
blog-node-1:
build:
context: ../../../../
dockerfile: tests/real-integration/blog-scenario/docker/Dockerfile.blog-api
depends_on:
blog-bootstrap:
condition: service_healthy
environment:
- NODE_ID=blog-node-1
- NODE_PORT=3000
- IPFS_PORT=4011
- BOOTSTRAP_PEER=blog-bootstrap
- SWARM_KEY_FILE=/data/swarm.key
- NODE_ENV=test
ports:
- "3001:3000"
- "4011:4011"
volumes:
- ./swarm.key:/data/swarm.key:ro
- blog-node-1-data:/data
networks:
- blog-network
healthcheck:
test: ["CMD", "sh", "-c", "wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1"]
interval: 15s
timeout: 10s
retries: 10
start_period: 30s
# Blog API Node 2
blog-node-2:
build:
context: ../../../../
dockerfile: tests/real-integration/blog-scenario/docker/Dockerfile.blog-api
depends_on:
blog-bootstrap:
condition: service_healthy
environment:
- NODE_ID=blog-node-2
- NODE_PORT=3000
- IPFS_PORT=4012
- BOOTSTRAP_PEER=blog-bootstrap
- SWARM_KEY_FILE=/data/swarm.key
- NODE_ENV=test
ports:
- "3002:3000"
- "4012:4012"
volumes:
- ./swarm.key:/data/swarm.key:ro
- blog-node-2-data:/data
networks:
- blog-network
healthcheck:
test: ["CMD", "sh", "-c", "wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1"]
interval: 15s
timeout: 10s
retries: 10
start_period: 30s
# Blog API Node 3
blog-node-3:
build:
context: ../../../../
dockerfile: tests/real-integration/blog-scenario/docker/Dockerfile.blog-api
depends_on:
blog-bootstrap:
condition: service_healthy
environment:
- NODE_ID=blog-node-3
- NODE_PORT=3000
- IPFS_PORT=4013
- BOOTSTRAP_PEER=blog-bootstrap
- SWARM_KEY_FILE=/data/swarm.key
- NODE_ENV=test
ports:
- "3003:3000"
- "4013:4013"
volumes:
- ./swarm.key:/data/swarm.key:ro
- blog-node-3-data:/data
networks:
- blog-network
healthcheck:
test: ["CMD", "sh", "-c", "wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1"]
interval: 15s
timeout: 10s
retries: 10
start_period: 30s
# Test Runner
blog-test-runner:
build:
context: ../../../../
dockerfile: tests/real-integration/blog-scenario/docker/Dockerfile.test-runner
depends_on:
blog-node-1:
condition: service_healthy
blog-node-2:
condition: service_healthy
blog-node-3:
condition: service_healthy
environment:
- TEST_SCENARIO=blog
- NODE_ENDPOINTS=http://blog-node-1:3000,http://blog-node-2:3000,http://blog-node-3:3000
- TEST_TIMEOUT=300000
- NODE_ENV=test
volumes:
- ../tests:/app/tests:ro
- test-results:/app/results
networks:
- blog-network
command: ["pnpm", "run", "test:real"]
volumes:
bootstrap-data:
driver: local
blog-node-1-data:
driver: local
blog-node-2-data:
driver: local
blog-node-3-data:
driver: local
test-results:
driver: local
networks:
blog-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16