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
- 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>
186 lines
No EOL
4.9 KiB
YAML
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 |