use axum::{
routing::{delete, get, post},
Router,
};
use crate::api::{handlers::branch_handler, server::AppState};
pub fn routes() -> Router<AppState> {
Router::new()
.route("/", get(branch_handler::list_branches))
.route("/", post(branch_handler::create_branch))
.route("/:name", get(branch_handler::get_branch))
.route("/:name", delete(branch_handler::delete_branch))
.route("/:name/merge", post(branch_handler::merge_branch))
}
#[cfg(test)]
#[allow(clippy::unwrap_used, clippy::expect_used)]
mod tests {
use super::*;
use crate::EmbeddedDatabase;
use std::sync::Arc;
#[test]
fn test_routes_creation() {
let db = Arc::new(EmbeddedDatabase::new_in_memory().unwrap());
let query_registry = Arc::new(crate::compute::QueryRegistry::new());
let state = AppState {
db,
query_registry,
auth_bridge: None,
oauth_registry: None,
change_notifier: None,
};
let router: axum::Router<()> = routes().with_state(state);
drop(router);
}
}