1#![warn(missing_docs)]
9
10mod assertions;
11mod containers;
12mod db_mock;
13mod environment;
14mod fixture;
15mod http_client;
16mod mock;
17mod service_mock;
18
19#[cfg(any(feature = "bench", feature = "load-test"))]
20mod benchmark;
21
22#[cfg(any(feature = "bench", feature = "load-test"))]
23mod load_test;
24
25#[cfg(feature = "fuzz")]
26mod fuzz;
27
28#[cfg(feature = "pact")]
29mod contract;
30
31pub use assertions::{AsyncAssert, assert_eventually, assert_json_contains, assert_matches_regex};
32
33pub use environment::{
34 AsyncTestLifecycleHook, TestEnv, TestEnvBuilder, TestEnvConfig, TestEnvState, TestLifecycleHook, TestServiceConfig,
35 create_test_env, create_test_env_with_config,
36};
37
38pub use fixture::{
39 Fixture, FixtureBuilder, FixtureGenerator, RandomBool, RandomChoice, RandomDateTime, RandomEmail, RandomNumber,
40 RandomString, RandomUuid,
41};
42
43pub use mock::{AsyncMock, Mock, MockBuilder, MockCall, MockExpectation, MockFn, MockResult, verify, verify_async};
44
45#[cfg(feature = "mockall")]
46pub use mock::{automock, mock, mockall, predicate, sequence};
47
48pub use http_client::{RequestBuilder, TestClient, TestResponse};
49
50pub use db_mock::{DatabaseExpectation, DatabaseQuery, DatabaseResult, MockDatabase, MockDatabaseBuilder};
51
52pub use service_mock::{
53 MockExternalService, MockExternalServiceBuilder, ServiceExpectation, ServiceMatchRule, ServiceRequest, ServiceResponse,
54 ServiceResponseConfig,
55};
56
57#[cfg(feature = "containers")]
58pub use containers::{
59 MySqlContainer, MySqlImage, PostgresContainer, PostgresImage, RedisContainer, RedisImage, TestContainer,
60 is_docker_available,
61};
62
63pub use wae_types::{WaeError, WaeErrorKind, WaeResult as TestingResult};
64
65#[cfg(any(feature = "bench", feature = "load-test"))]
66pub use benchmark::{BenchmarkConfig, PerformanceStats, SimpleTimer};
67
68#[cfg(any(feature = "bench", feature = "load-test"))]
69pub use load_test::{LatencyStats, LoadTestConfig, LoadTestResult, RequestResult, SyncLoadTester};
70
71#[cfg(feature = "fuzz")]
72pub use fuzz::{Arbitrary, SafeArbitrary, SafeEmail, SafeHttpStatus, SafeUuid, Unstructured};
73
74#[cfg(feature = "pact")]
75pub use contract::*;