use crate::AppState;
use crate::acp::AcpSupervisor;
use crate::auth::LoginGuard;
use crate::engine::EngineRegistry;
use sqlx::sqlite::SqlitePoolOptions;
use std::sync::Arc;
use std::sync::atomic::{AtomicBool, AtomicU64};
pub async fn test_state() -> AppState {
let db = SqlitePoolOptions::new()
.max_connections(1)
.connect("sqlite::memory:")
.await
.expect("in-memory sqlite pool");
sqlx::migrate!("./migrations").run(&db).await.expect("run migrations");
AppState {
db,
jwt_secret: "test-secret".into(),
auth_enabled: Arc::new(AtomicBool::new(false)),
acp_idle_recycle_secs: Arc::new(AtomicU64::new(300)),
login_guard: LoginGuard::new(),
engines: EngineRegistry::new(),
acp_supervisor: AcpSupervisor::default(),
}
}