1pub mod types;
2pub mod models;
3pub use models::{ApiKey, QuotaExceeded, Tenant, TenantContext, TenantQuota, TenantTier};
4pub use types::{AppError, ErrorCode, Result};
5
6#[cfg(test)]
7mod tests {
8 use super::{ApiKey, AppError, ErrorCode, QuotaExceeded, Result, Tenant, TenantContext, TenantQuota, TenantTier};
9
10 #[test]
11 fn test_public_reexports_are_usable() {
12 let tier = TenantTier::Free;
13 let quota = TenantQuota::from_tier(&tier);
14 let tenant = Tenant::new("id".into(), "name".into(), tier);
15 let ctx = TenantContext::new(tenant.id.clone(), tier);
16 let _key = ApiKey::new(
17 "k".into(),
18 tenant.id,
19 "hash".into(),
20 "prefix".into(),
21 "key".into(),
22 );
23 let result: Result<()> = Err(AppError::NotFound("missing".into()));
24 assert!(matches!(result.unwrap_err().code(), ErrorCode::NotFound));
25 assert_eq!(ctx.quota.requests_per_month, quota.requests_per_month);
26 assert_eq!(QuotaExceeded::Monthly.message(), "Monthly request quota exceeded");
27 }
28}