1#![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
65#[cfg(feature = "spark")]
66pub mod spark;
67
68pub mod prelude;
70
71pub use service::PlatformService;
73
74pub type PlatformClient = PlatformService;
76pub use openlark_core::config::Config;
77
78pub const VERSION: &str = env!("CARGO_PKG_VERSION");
80
81pub type PlatformConfig = Config;
83
84#[cfg(test)]
85mod tests {
86 use crate::VERSION;
87
88 #[test]
89 fn test_version() {
90 assert_ne!(VERSION, "");
91 }
92
93 #[test]
94 fn test_module_composition() {
95 assert_eq!(VERSION, env!("CARGO_PKG_VERSION"));
97 }
98}
99
100#[cfg(test)]
101mod service_tests {
102 use super::*;
103 use openlark_core::constants::AppType;
104
105 fn create_test_config() -> Config {
106 Config::builder()
107 .app_id("test_app")
108 .app_secret("test_secret")
109 .app_type(AppType::SelfBuild)
110 .build()
111 }
112
113 #[test]
114 fn test_platform_service_creation() {
115 let config = create_test_config();
116 let service = PlatformService::new(config).unwrap();
117 assert!(service.config().app_id() == "test_app");
118 }
119
120 #[test]
121 fn test_platform_service_clone() {
122 let config = create_test_config();
123 let service = PlatformService::new(config).unwrap();
124 let cloned = service.clone();
125 assert!(cloned.config().app_id() == "test_app");
126 }
127
128 #[test]
129 fn test_platform_config_alias() {
130 let config: PlatformConfig = Config::builder()
131 .app_id("test_app")
132 .app_secret("test_secret")
133 .build();
134 assert!(config.app_id() == "test_app");
135 }
136
137 #[cfg(feature = "app-engine")]
138 #[test]
139 fn test_platform_service_app_engine() {
140 let config = create_test_config();
141 let service = PlatformService::new(config).unwrap();
142 let _app_engine = service.app_engine();
143 }
144
145 #[cfg(feature = "directory")]
146 #[test]
147 fn test_platform_service_directory() {
148 let config = create_test_config();
149 let service = PlatformService::new(config).unwrap();
150 let _directory = service.directory();
151 }
152
153 #[cfg(feature = "admin")]
154 #[test]
155 fn test_platform_service_admin() {
156 let config = create_test_config();
157 let service = PlatformService::new(config).unwrap();
158 let _admin = service.admin();
159 }
160
161 #[cfg(all(feature = "spark", feature = "v1"))]
162 #[test]
163 fn test_platform_service_spark() {
164 let config = create_test_config();
165 let service = PlatformService::new(config).unwrap();
166 let _request = service.spark().v1().directory().user().id_convert();
167 }
168}