bitwarden_test/play/
mod.rs

1//! Play test framework for E2E testing
2//!
3//! This module provides a scene-based testing framework with automatic cleanup.
4//!
5//! # Overview
6//!
7//! The Play framework enables E2E testing by:
8//! - Creating test data via a seeder API
9//! - Providing test isolation through unique play IDs
10//! - Automatic cleanup when the test closure completes
11//!
12//! # Example
13//!
14//! ```ignore
15//! use bitwarden_test::play::{play_test, Play, SingleUserArgs, SingleUserScene};
16//!
17//! #[play_test]
18//! async fn test_user_login(play: Play) {
19//!     let args = SingleUserArgs {
20//!         email: "[email protected]".to_string(),
21//!         ..Default::default()
22//!     };
23//!     let scene = play.scene::<SingleUserScene>(&args).await.unwrap();
24//!
25//!     // Access result data directly
26//!     let user_id = &scene.result().user_id;
27//!     let api_key = &scene.result().api_key;
28//!
29//!     // Use mangled values for test isolation
30//!     let email = scene.get_mangled("[email protected]");
31//!
32//!     // Cleanup happens automatically
33//! }
34//! ```
35
36mod config;
37mod error;
38mod http_client;
39#[allow(clippy::module_inception)]
40mod play;
41mod query;
42mod scene;
43mod scene_template;
44
45pub mod scenes;
46
47pub use bitwarden_test_macro::play_test;
48pub use config::PlayConfig;
49pub use error::{PlayError, PlayResult};
50pub(crate) use http_client::PlayHttpClient;
51pub use play::{Play, PlayBuilder};
52pub use query::Query;
53pub(crate) use query::QueryRequest;
54pub use scene::Scene;
55pub use scene_template::SceneTemplate;
56pub(crate) use scene_template::{CreateSceneRequest, CreateSceneResponse};
57pub use scenes::{SingleUserArgs, SingleUserResult, SingleUserScene};