teremock 0.5.5

Fast integration testing library for teloxide Telegram bots
Documentation
use std::{fmt::Error, sync::Mutex};

use actix_web::{
    error::ErrorBadRequest,
    web::{self, Bytes},
    HttpResponse,
};
use futures_util::{future::ok, stream::once};

use crate::state::State;

pub async fn download_file(
    path: web::Path<(String, String)>,
    state: web::Data<Mutex<State>>,
) -> HttpResponse {
    if !state.lock().unwrap().files.iter().any(|f| f.path == path.1) {
        return ErrorBadRequest("No such file found").into();
    }

    let stream = once(ok::<_, Error>(Bytes::copy_from_slice(
        "Hello, world!".as_bytes(),
    )));

    HttpResponse::Ok().streaming(stream)
}