code: test framework and coverage for development

This commit is contained in:
2025-01-14 15:53:11 +01:00
parent f821e2d7d7
commit 4ae38adc8e
7 changed files with 582 additions and 20 deletions

25
tests/test_features.rs Normal file
View File

@@ -0,0 +1,25 @@
use loco_minijinja_engine::{
MinijinjaViewEngineConfigurableInitializer, MinijinjaViewEngineInitializer,
};
use loco_rs::app::Initializer;
fn basic_features() {
let std_initializer = MinijinjaViewEngineInitializer;
assert_eq!(std_initializer.name(), "minijinja");
let cfg_initializer =
MinijinjaViewEngineConfigurableInitializer::new("tests".to_string(), None);
assert_eq!(cfg_initializer.name(), "minijinja");
}
#[cfg(not(feature = "autoreloader"))]
#[test]
fn test_without_feature_autoreloader() {
basic_features();
}
#[cfg(feature = "autoreloader")]
#[test]
fn test_with_feature_autoreloader() {
basic_features();
}

22
tests/test_route_init.rs Normal file
View File

@@ -0,0 +1,22 @@
#[cfg(test)]
#[cfg(feature = "testing")]
mod tests {
use axum::{routing::get, Router};
use loco_minijinja_engine::MinijinjaViewEngineConfigurableInitializer;
use loco_rs::app::Initializer;
use loco_rs::tests_cfg;
#[tokio::test]
async fn test_after_routes_success() {
let router = Router::new().route("/", get(|| async { "Hello, World!" }));
let ctx = tests_cfg::app::get_app_context().await;
let std_initializer =
MinijinjaViewEngineConfigurableInitializer::new("tests".to_string(), None);
// Call the after_routes function
let result = std_initializer.after_routes(router, &ctx).await;
assert!(result.is_ok(), "result was NOT OK: {:?}", result);
}
}