1#![allow(missing_docs)]
39#![allow(clippy::module_inception)]
40
41mod service;
42
43pub mod common;
45
46#[cfg(feature = "app-engine")]
48pub mod app_engine;
49
50#[cfg(feature = "directory")]
51pub mod directory;
52
53#[cfg(feature = "admin")]
54pub mod admin;
55
56#[cfg(feature = "mdm")]
57pub mod mdm;
58
59#[cfg(feature = "tenant")]
60pub mod tenant;
61
62#[cfg(feature = "trust_party")]
63pub mod trust_party;
64
65pub mod prelude;
67
68pub use service::PlatformService;
70
71pub use openlark_core::config::Config;
73
74pub const VERSION: &str = env!("CARGO_PKG_VERSION");
76
77pub type PlatformConfig = Config;
79
80#[cfg(test)]
81mod tests {
82 use crate::VERSION;
83
84 #[test]
85 fn test_version() {
86 assert!(!VERSION.is_empty());
87 }
88
89 #[test]
90 fn test_module_composition() {
91 assert_eq!(VERSION, env!("CARGO_PKG_VERSION"));
93 }
94}
95
96#[cfg(test)]
97mod service_tests {
98 use super::*;
99 use openlark_core::constants::AppType;
100
101 fn create_test_config() -> Config {
102 Config::builder()
103 .app_id("test_app")
104 .app_secret("test_secret")
105 .app_type(AppType::SelfBuild)
106 .build()
107 }
108
109 #[test]
110 fn test_platform_service_creation() {
111 let config = create_test_config();
112 let service = PlatformService::new(config).unwrap();
113 assert!(service.config().app_id() == "test_app");
114 }
115
116 #[test]
117 fn test_platform_service_clone() {
118 let config = create_test_config();
119 let service = PlatformService::new(config).unwrap();
120 let cloned = service.clone();
121 assert!(cloned.config().app_id() == "test_app");
122 }
123
124 #[test]
125 fn test_platform_config_alias() {
126 let config: PlatformConfig = Config::builder()
127 .app_id("test_app")
128 .app_secret("test_secret")
129 .build();
130 assert!(config.app_id() == "test_app");
131 }
132
133 #[cfg(feature = "app-engine")]
134 #[test]
135 fn test_platform_service_app_engine() {
136 let config = create_test_config();
137 let service = PlatformService::new(config).unwrap();
138 let _app_engine = service.app_engine();
139 }
140
141 #[cfg(feature = "directory")]
142 #[test]
143 fn test_platform_service_directory() {
144 let config = create_test_config();
145 let service = PlatformService::new(config).unwrap();
146 let _directory = service.directory();
147 }
148
149 #[cfg(feature = "admin")]
150 #[test]
151 fn test_platform_service_admin() {
152 let config = create_test_config();
153 let service = PlatformService::new(config).unwrap();
154 let _admin = service.admin();
155 }
156}