#[test]
fn route_table_has_no_orphans_or_duplicates() {
let orphan_routes = webx::orphan_routes();
let orphan_handlers = webx::orphan_handlers();
let duplicates = webx::duplicate_handlers();
assert!(
orphan_routes.is_empty(),
"orphan routes (route declared without a matching handler): {orphan_routes:?}\n\n{}",
webx::format_route_diagnostics()
);
assert!(
orphan_handlers.is_empty(),
"orphan handlers (handler declared without a route): {orphan_handlers:?}\n\n{}",
webx::format_route_diagnostics()
);
assert!(
duplicates.is_empty(),
"duplicate handlers: {duplicates:?}\n\n{}",
webx::format_route_diagnostics()
);
}
#[test]
fn route_snapshots_are_consistent() {
let snapshots = webx::route_snapshots();
for snapshot in &snapshots {
assert!(
snapshot.path.starts_with('/'),
"route path must be absolute: {} {}",
snapshot.method,
snapshot.path
);
assert!(
!snapshot.request_type.is_empty(),
"route {} {} has no request type",
snapshot.method,
snapshot.path
);
assert!(
snapshot.has_handler,
"route {} {} ({}) has no handler",
snapshot.method, snapshot.path, snapshot.request_type
);
}
}