torrust_tracker_deployer_lib/testing/e2e/mod.rs
1//! End-to-End testing infrastructure
2//!
3//! This module provides comprehensive testing infrastructure for validating
4//! the complete deployment workflow from infrastructure provisioning through
5//! application deployment and validation.
6//!
7//! ## Module Structure
8//!
9//! - `container` - Service dependency injection container for E2E tests
10//! - `context` - Test context configuration and management
11//! - `containers` - Container management for E2E testing scenarios
12//! - `process_runner` - Black-box CLI process execution utilities
13//! - `tasks` - High-level testing tasks and workflows
14//!
15//! ## Testing Workflow
16//!
17//! The E2E testing system orchestrates complete deployment scenarios including
18//! provisioning, configuration, validation, and cleanup phases to ensure
19//! the entire deployment system works correctly.
20//!
21//! ## Dependency Verification
22//!
23//! E2E test binaries use the `torrust-tracker-deployer-dependency-installer` package to verify
24//! required system dependencies are installed before running tests.
25
26pub mod container;
27pub mod containers;
28pub mod context;
29mod process_runner;
30pub mod tasks;
31
32// Re-export for convenience
33pub use container::Services;
34
35// Re-export provisioned container types for backward compatibility
36pub use containers::{ContainerError, RunningProvisionedContainer, StoppedProvisionedContainer};
37
38// Re-export black-box testing types
39pub use process_runner::{ProcessResult, ProcessRunner};
40
41/// Subdirectory name for LXD `OpenTofu` configuration files within the build directory.
42///
43/// This constant defines the path where `OpenTofu`/Terraform configuration files
44/// and state for the LXD provider will be managed: `build_dir/tofu/lxd/`.
45///
46/// Note: This is specific to LXD provider testing. Other providers (e.g., Hetzner)
47/// would use their own paths like `tofu/hetzner`.
48pub const LXD_OPENTOFU_SUBFOLDER: &str = "tofu/lxd";