Skip to main content

pleme_testing/
lib.rs

1//! # pleme-testing
2//!
3//! Testing utilities library for Pleme platform services.
4//!
5//! ## Features
6//!
7//! - **Test Fixtures** - Reusable test data builders
8//! - **Testcontainers** - Docker containers for integration tests
9//! - **Database Fixtures** - PostgreSQL and Redis test helpers
10//! - **HTTP Mocking** - HTTP client testing utilities
11//!
12//! ## Usage
13//!
14//! ```rust
15//! use pleme_testing::fixtures::UserFixture;
16//!
17//! #[tokio::test]
18//! async fn test_user_creation() {
19//!     let user = UserFixture::default().build();
20//!     assert!(!user.id.is_empty());
21//! }
22//! ```
23
24pub mod fixtures;
25
26#[cfg(feature = "containers")]
27pub mod containers;
28
29#[cfg(feature = "database")]
30pub mod database;
31
32#[cfg(feature = "http")]
33pub mod http;
34
35pub use fixtures::Fixture;
36
37use thiserror::Error;
38
39/// Testing errors
40#[derive(Error, Debug)]
41pub enum TestingError {
42    #[error("Fixture creation failed: {0}")]
43    FixtureFailed(String),
44
45    #[error("Container startup failed: {0}")]
46    ContainerFailed(String),
47
48    #[error("Test setup failed: {0}")]
49    SetupFailed(String),
50}
51
52/// Result type for testing operations
53pub type Result<T> = std::result::Result<T, TestingError>;