upskill-event-manager/tests/docker-compose.test.yml
Ben 7c9ca65cf2
Some checks are pending
HVAC Plugin CI/CD Pipeline / Security Analysis (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Code Quality & Standards (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Unit Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Integration Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Deploy to Staging (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Notification (push) Blocked by required conditions
Security Monitoring & Compliance / Dependency Vulnerability Scan (push) Waiting to run
Security Monitoring & Compliance / Secrets & Credential Scan (push) Waiting to run
Security Monitoring & Compliance / WordPress Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Static Code Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Security Compliance Validation (push) Waiting to run
Security Monitoring & Compliance / Security Summary Report (push) Blocked by required conditions
Security Monitoring & Compliance / Security Team Notification (push) Blocked by required conditions
feat: add comprehensive test framework and test files
- Add 90+ test files including E2E, unit, and integration tests
- Implement Page Object Model (POM) architecture
- Add Docker testing environment with comprehensive services
- Include modernized test framework with error recovery
- Add specialized test suites for master trainer and trainer workflows
- Update .gitignore to properly track test infrastructure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 23:23:26 -03:00

186 lines
No EOL
4.9 KiB
YAML

# Docker Compose for HVAC Testing Framework
# Provides hermetic testing environment with WordPress and dependencies
version: '3.8'
services:
# WordPress Test Instance
wordpress-test:
image: wordpress:6.4-php8.2-apache
container_name: hvac-wordpress-test
restart: unless-stopped
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: mysql-test
WORDPRESS_DB_USER: hvac_test_user
WORDPRESS_DB_PASSWORD: hvac_test_password
WORDPRESS_DB_NAME: hvac_test_db
WORDPRESS_DEBUG: 1
WORDPRESS_CONFIG_EXTRA: |
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
define('SCRIPT_DEBUG', true);
define('CONCATENATE_SCRIPTS', false);
// Test-specific configurations
define('HVAC_TEST_MODE', true);
define('HVAC_TEST_DATA_ISOLATION', true);
volumes:
- wordpress_test_data:/var/www/html
- ./test-wordpress-config.php:/var/www/html/wp-config-test.php
- ../:/var/www/html/wp-content/plugins/hvac-community-events
- ./fixtures/uploads:/var/www/html/wp-content/uploads
- ./logs:/var/log/wordpress
depends_on:
mysql-test:
condition: service_healthy
networks:
- hvac-test-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/wp-admin/install.php"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
# MySQL Database for Testing
mysql-test:
image: mysql:8.0
container_name: hvac-mysql-test
restart: unless-stopped
ports:
- "3307:3306"
environment:
MYSQL_DATABASE: hvac_test_db
MYSQL_USER: hvac_test_user
MYSQL_PASSWORD: hvac_test_password
MYSQL_ROOT_PASSWORD: hvac_root_password
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- mysql_test_data:/var/lib/mysql
- ./mysql-init:/docker-entrypoint-initdb.d
- ./mysql-config/test.cnf:/etc/mysql/conf.d/test.cnf
networks:
- hvac-test-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "hvac_test_user", "--password=hvac_test_password"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
# Redis for Caching (Optional)
redis-test:
image: redis:7-alpine
container_name: hvac-redis-test
restart: unless-stopped
ports:
- "6380:6379"
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
volumes:
- redis_test_data:/data
networks:
- hvac-test-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
# PhpMyAdmin for Database Management (Development)
phpmyadmin-test:
image: phpmyadmin:5
container_name: hvac-phpmyadmin-test
restart: unless-stopped
ports:
- "8081:80"
environment:
PMA_HOST: mysql-test
PMA_PORT: 3306
PMA_USER: hvac_test_user
PMA_PASSWORD: hvac_test_password
MYSQL_ROOT_PASSWORD: hvac_root_password
depends_on:
mysql-test:
condition: service_healthy
networks:
- hvac-test-network
profiles:
- development
# Mailhog for Email Testing
mailhog-test:
image: mailhog/mailhog:v1.0.1
container_name: hvac-mailhog-test
restart: unless-stopped
ports:
- "8025:8025" # Web UI
- "1025:1025" # SMTP
networks:
- hvac-test-network
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8025/api/v1/messages"]
interval: 30s
timeout: 10s
retries: 3
# WP-CLI Container for Database Operations
wp-cli:
image: wordpress:cli-2.9-php8.2
container_name: hvac-wp-cli-test
volumes:
- wordpress_test_data:/var/www/html
- ../:/var/www/html/wp-content/plugins/hvac-community-events
- ./wp-cli-scripts:/scripts
environment:
WORDPRESS_DB_HOST: mysql-test
WORDPRESS_DB_USER: hvac_test_user
WORDPRESS_DB_PASSWORD: hvac_test_password
WORDPRESS_DB_NAME: hvac_test_db
depends_on:
wordpress-test:
condition: service_healthy
mysql-test:
condition: service_healthy
networks:
- hvac-test-network
profiles:
- utilities
# Playwright Test Runner
playwright-tests:
build:
context: .
dockerfile: Dockerfile.playwright
container_name: hvac-playwright-tests
volumes:
- .:/app
- ./evidence:/app/evidence
- /app/node_modules
environment:
- TEST_ENVIRONMENT=docker
- BASE_URL=http://wordpress-test
- HEADLESS=true
- CI=true
depends_on:
wordpress-test:
condition: service_healthy
networks:
- hvac-test-network
profiles:
- testing
volumes:
wordpress_test_data:
driver: local
mysql_test_data:
driver: local
redis_test_data:
driver: local
networks:
hvac-test-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16