tsukuyomi 0.5.3

Asynchronous Web framework for Rust
Documentation
use {
    cookie::Cookie,
    tsukuyomi::{config::prelude::*, App},
};

#[test]
fn enable_manage_cookies() -> tsukuyomi_server::Result<()> {
    let app = App::create(chain![
        path!("/first") //
            .to(endpoint::reply(tsukuyomi::responder::oneshot(|input| {
                input.cookies.jar()?.add(Cookie::new("session", "xxxx"));
                Ok::<_, tsukuyomi::Error>("")
            }))),
        path!("/second") //
            .to(endpoint::reply(tsukuyomi::responder::oneshot(|input| {
                assert!(input.cookies.jar()?.get("session").is_some());
                Ok::<_, tsukuyomi::Error>("")
            }))),
    ])?;
    let mut server = tsukuyomi_server::test::server(app)?;

    let mut session = server.new_session()?.save_cookies(true);
    let _ = session.perform("/first")?;
    let _ = session.perform("/second")?;

    Ok(())
}

#[test]
fn disable_manage_cookies() -> tsukuyomi_server::Result<()> {
    let app = App::create(chain![
        path!("/first") //
            .to(endpoint::reply(tsukuyomi::responder::oneshot(|input| {
                input.cookies.jar()?.add(Cookie::new("session", "xxxx"));
                Ok::<_, tsukuyomi::Error>("")
            }))),
        path!("/second") //
            .to(endpoint::reply(tsukuyomi::responder::oneshot(|input| {
                assert!(input.cookies.jar()?.get("session").is_none());
                Ok::<_, tsukuyomi::Error>("")
            }))),
    ])?;
    let mut server = tsukuyomi_server::test::server(app)?;

    let mut session = server.new_session()?;
    let _ = session.perform("/first")?;
    let _ = session.perform("/second")?;

    Ok(())
}