use trillium::Conn;
use trillium_cookies::{CookiesConnExt, CookiesHandler, cookie::Cookie};
use trillium_testing::{TestServer, harness};
async fn handler_that_uses_cookies(conn: Conn) -> Conn {
let content = if let Some(cookie_value) = conn.cookies().get("some_cookie") {
format!("current cookie value: {}", cookie_value.value())
} else {
String::from("no cookie value set")
};
conn.with_cookie(("some_cookie", "some-cookie-value"))
.ok(content)
}
let handler = (CookiesHandler::new(), handler_that_uses_cookies);
let app = TestServer::new(handler).await;
app.get("/")
.await
.assert_ok()
.assert_body("no cookie value set")
.assert_header("set-cookie", "some_cookie=some-cookie-value");
app.get("/")
.with_request_header("cookie", "some_cookie=trillium")
.await
.assert_ok()
.assert_body("current cookie value: trillium")
.assert_header("set-cookie", "some_cookie=some-cookie-value");