use crate::function::AuthContext;
use std::collections::HashMap;
use uuid::Uuid;
mod cron;
mod daemon;
mod job;
mod mcp_tool;
mod mutation;
mod query;
mod webhook;
mod workflow;
pub use cron::{TestCronContext, TestCronContextBuilder};
pub use daemon::{TestDaemonContext, TestDaemonContextBuilder};
pub use job::{TestJobContext, TestJobContextBuilder, TestProgressUpdate};
pub use mcp_tool::{TestMcpToolContext, TestMcpToolContextBuilder};
pub use mutation::{TestMutationContext, TestMutationContextBuilder};
pub use query::{TestQueryContext, TestQueryContextBuilder};
pub use webhook::{TestWebhookContext, TestWebhookContextBuilder};
pub use workflow::{TestWorkflowContext, TestWorkflowContextBuilder};
pub(crate) fn build_test_auth(
user_id: Option<Uuid>,
roles: Vec<String>,
claims: HashMap<String, serde_json::Value>,
) -> AuthContext {
if let Some(user_id) = user_id {
AuthContext::authenticated(user_id, roles, claims)
} else if claims.contains_key("sub") {
AuthContext::authenticated_without_uuid(roles, claims)
} else {
AuthContext::unauthenticated()
}
}