diff options
-rw-r--r-- | .github/workflows/rust.yml | 2 | ||||
-rw-r--r-- | askama_derive/src/generator.rs | 2 | ||||
-rw-r--r-- | askama_rocket/Cargo.toml | 5 | ||||
-rw-r--r-- | askama_rocket/src/lib.rs | 2 | ||||
-rw-r--r-- | askama_rocket/tests/basic.rs | 28 |
5 files changed, 22 insertions, 17 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 26ca174..6e4e4bc 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -81,7 +81,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly + toolchain: stable override: true components: clippy - run: cargo test --package askama_rocket --all-targets diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs index fdc9cae..142ff7f 100644 --- a/askama_derive/src/generator.rs +++ b/askama_derive/src/generator.rs @@ -506,7 +506,7 @@ impl<'a> Generator<'a> { let param = syn::GenericParam::Lifetime(syn::LifetimeDef::new(lifetime)); self.write_header( buf, - "::askama_rocket::Responder<'askama>", + "::askama_rocket::Responder<'askama, 'askama>", Some(vec![param]), )?; diff --git a/askama_rocket/Cargo.toml b/askama_rocket/Cargo.toml index bdace04..53a0953 100644 --- a/askama_rocket/Cargo.toml +++ b/askama_rocket/Cargo.toml @@ -14,7 +14,10 @@ edition = "2018" [dependencies] askama = { version = "0.11.2", path = "../askama", default-features = false, features = ["with-rocket", "mime", "mime_guess"] } -rocket = { version = "0.4", default-features = false } +rocket = { version = "0.5.0-rc.2", default-features = false } + +[dev-dependencies] +futures-lite = "1.12.0" [features] default = ["askama/default"] diff --git a/askama_rocket/src/lib.rs b/askama_rocket/src/lib.rs index f10ba87..fb231a4 100644 --- a/askama_rocket/src/lib.rs +++ b/askama_rocket/src/lib.rs @@ -14,6 +14,6 @@ pub fn respond<T: Template>(t: &T, _ext: &str) -> Result<'static> { let rsp = t.render().map_err(|_| Status::InternalServerError)?; Response::build() .header(Header::new("content-type", T::MIME_TYPE)) - .sized_body(Cursor::new(rsp)) + .sized_body(rsp.len(), Cursor::new(rsp)) .ok() } diff --git a/askama_rocket/tests/basic.rs b/askama_rocket/tests/basic.rs index 0671c4c..a61c188 100644 --- a/askama_rocket/tests/basic.rs +++ b/askama_rocket/tests/basic.rs @@ -1,12 +1,8 @@ -#![feature(proc_macro_hygiene, decl_macro)] - -#[macro_use] -extern crate rocket; - use askama::Template; +use futures_lite::future::block_on; use rocket::http::{ContentType, Status}; -use rocket::local::Client; +use rocket::local::asynchronous::Client; #[derive(Template)] #[template(path = "hello.html")] @@ -14,17 +10,23 @@ struct HelloTemplate<'a> { name: &'a str, } -#[get("/")] +#[rocket::get("/")] fn hello() -> HelloTemplate<'static> { HelloTemplate { name: "world" } } #[test] fn test_rocket() { - let rocket = rocket::ignite().mount("/", routes![hello]); - let client = Client::new(rocket).unwrap(); - let mut rsp = client.get("/").dispatch(); - assert_eq!(rsp.status(), Status::Ok); - assert_eq!(rsp.content_type(), Some(ContentType::HTML)); - assert_eq!(rsp.body_string().unwrap(), "Hello, world!"); + block_on(async { + let rocket = rocket::build() + .mount("/", rocket::routes![hello]) + .ignite() + .await + .unwrap(); + let client = Client::untracked(rocket).await.unwrap(); + let rsp = client.get("/").dispatch().await; + assert_eq!(rsp.status(), Status::Ok); + assert_eq!(rsp.content_type(), Some(ContentType::HTML)); + assert_eq!(rsp.into_string().await.as_deref(), Some("Hello, world!")); + }); } |