aboutsummaryrefslogtreecommitdiffstats
path: root/askama_tide/tests/tide.rs
diff options
context:
space:
mode:
Diffstat (limited to 'askama_tide/tests/tide.rs')
-rw-r--r--askama_tide/tests/tide.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/askama_tide/tests/tide.rs b/askama_tide/tests/tide.rs
new file mode 100644
index 0000000..6fa1418
--- /dev/null
+++ b/askama_tide/tests/tide.rs
@@ -0,0 +1,29 @@
+use askama::Template;
+use async_std::prelude::*;
+use std::convert::TryInto;
+use tide::{http::mime::HTML, Body, Response};
+
+#[derive(Template)]
+#[template(path = "hello.html")]
+struct HelloTemplate<'a> {
+ name: &'a str,
+}
+
+#[async_std::test]
+async fn template_to_response() {
+ let mut res: Response = HelloTemplate { name: "world" }.into();
+ assert_eq!(res.status(), 200);
+ assert_eq!(res.content_type(), Some(HTML));
+
+ let res: &mut tide::http::Response = res.as_mut();
+ assert_eq!(res.body_string().await.unwrap(), "Hello, world!");
+}
+
+#[async_std::test]
+async fn template_to_body() {
+ let mut body: Body = HelloTemplate { name: "world" }.try_into().unwrap();
+ assert_eq!(body.mime(), &HTML);
+ let mut body_string = String::new();
+ body.read_to_string(&mut body_string).await.unwrap();
+ assert_eq!(body_string, "Hello, world!");
+}