code: tests should be 100% in my mind, but tarpaulin says 94. good enough.
This commit is contained in:
parent
f6a2c892cd
commit
5205c8f38f
3
tests/test_1.html
Normal file
3
tests/test_1.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{% block world %}
|
||||||
|
Hello World!
|
||||||
|
{% endblock world %}
|
3
tests/test_2.html
Normal file
3
tests/test_2.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{% for i in context %}
|
||||||
|
<li>{{i}}<li>
|
||||||
|
{% endfor %}
|
3
tests/test_3.html
Normal file
3
tests/test_3.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{% block garbage %}
|
||||||
|
{% if this works then minijinja renders garbage %}
|
||||||
|
{{ should fail }}
|
@ -8,15 +8,18 @@ mod tests {
|
|||||||
use loco_rs::app::Initializer;
|
use loco_rs::app::Initializer;
|
||||||
use loco_rs::controller::views::ViewRenderer;
|
use loco_rs::controller::views::ViewRenderer;
|
||||||
use loco_rs::tests_cfg;
|
use loco_rs::tests_cfg;
|
||||||
|
use minijinja::Environment;
|
||||||
|
use serde::Serialize;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_after_routes_configured() {
|
async fn test_after_routes_configured() {
|
||||||
let router = Router::new().route("/", get(|| async { "Hello, World!" }));
|
let router = Router::new().route("/", get(|| async { "Hello, World!" }));
|
||||||
let ctx = tests_cfg::app::get_app_context().await;
|
let ctx = tests_cfg::app::get_app_context().await;
|
||||||
|
let env: Environment = Environment::new();
|
||||||
|
|
||||||
let initializer =
|
let initializer =
|
||||||
MinijinjaViewEngineConfigurableInitializer::new("tests".to_string(), None);
|
MinijinjaViewEngineConfigurableInitializer::new("tests".to_string(), Some(env));
|
||||||
|
|
||||||
// Call the after_routes function
|
// Call the after_routes function
|
||||||
let result = initializer.after_routes(router, &ctx).await;
|
let result = initializer.after_routes(router, &ctx).await;
|
||||||
@ -24,6 +27,16 @@ mod tests {
|
|||||||
assert!(result.is_ok(), "result was NOT OK: {:?}", result);
|
assert!(result.is_ok(), "result was NOT OK: {:?}", result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_after_routes_configured_fails() {
|
||||||
|
let router = Router::new().route("/", get(|| async { "Hello, World!" }));
|
||||||
|
let ctx = tests_cfg::app::get_app_context().await;
|
||||||
|
let initializer =
|
||||||
|
MinijinjaViewEngineConfigurableInitializer::new("does_not_exist".to_string(), None);
|
||||||
|
let result = initializer.after_routes(router, &ctx).await;
|
||||||
|
assert!(result.is_err(), "result was unexpectedly OK: {:?}", result);
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_after_routes_std() {
|
async fn test_after_routes_std() {
|
||||||
let router = Router::new().route("/", get(|| async { "Hello, World!" }));
|
let router = Router::new().route("/", get(|| async { "Hello, World!" }));
|
||||||
@ -38,8 +51,40 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_rendering() {
|
fn test_rendering() {
|
||||||
let jinja: MinijinjaView = MinijinjaView::build().unwrap();
|
let jinja: MinijinjaView = MinijinjaView::build().unwrap();
|
||||||
let result = jinja.render("test.html", Value::default());
|
let result = jinja.render("test_1.html", Value::default());
|
||||||
assert!(result.is_ok(), "result was NOT OK: {:?}", result);
|
assert!(result.is_ok(), "result was NOT OK: {:?}", result);
|
||||||
assert_eq!(result.unwrap(), "\r\nHello World!\r\n");
|
assert_eq!(
|
||||||
|
result.unwrap().replace("\r", "").replace("\n", ""),
|
||||||
|
"Hello World!"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize)]
|
||||||
|
struct ReturnContext {
|
||||||
|
context: Vec<u8>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_rendering_html() {
|
||||||
|
let jinja: MinijinjaView = MinijinjaView::build().unwrap();
|
||||||
|
let result = jinja.render_html(
|
||||||
|
"test_2.html",
|
||||||
|
ReturnContext {
|
||||||
|
context: vec![1, 2, 3],
|
||||||
|
},
|
||||||
|
);
|
||||||
|
assert!(result.is_ok(), "result was NOT OK: {:?}", result);
|
||||||
|
let content: String = result.expect("Should never fail").0;
|
||||||
|
assert_eq!(
|
||||||
|
content.replace("\r", "").replace("\n", ""),
|
||||||
|
"<li>1<li><li>2<li><li>3<li>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_rendering_garbage() {
|
||||||
|
let jinja: MinijinjaView = MinijinjaView::build().unwrap();
|
||||||
|
let result = jinja.render("test_3.html", Value::default());
|
||||||
|
assert!(result.is_err(), "result was unexpectedly OK: {:?}", result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user