use worker_service::{
config::Config,
db::create_pool,
search::SearchEngine,
matching::ProbabilisticMatcher,
api::rest::{AppState, create_router},
};
use axum::Router;
pub fn create_test_app_state() -> AppState {
let config = Config::from_env().expect("Failed to load test config");
let db_pool = create_pool(&config.database)
.expect("Failed to create database pool");
let search_engine = SearchEngine::new(&config.search.index_path)
.expect("Failed to create search engine");
let matcher = ProbabilisticMatcher::new(config.matching.clone());
AppState::new(db_pool, search_engine, matcher, config)
}
pub fn create_test_router() -> Router {
let state = create_test_app_state();
create_router(state)
}
pub fn unique_worker_name(suffix: &str) -> String {
use chrono::Utc;
let timestamp = Utc::now().timestamp_micros();
format!("TestWorker{}_{}", suffix, timestamp)
}