mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-22 21:04:27 +01:00
Merge #3745
3745: tests: add unit test for `PayloadTooLarge` error r=curquiza a=cymruu # Pull Request Add a unit test for the `Payload`, which verifies that a request with a payload that is too large is rejected with the appropriate message. This was requested in this PR https://github.com/meilisearch/meilisearch/pull/3739 ## Related issue https://github.com/meilisearch/meilisearch/pull/3739 ## What does this PR do? - Adds requested test ## PR checklist Please check if your PR fulfills the following requirements: - [ ] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)? - [ ] Have you read the contributing guidelines? - [ ] Have you made sure that the title is accurate and descriptive of the changes? Thank you so much for contributing to Meilisearch! Co-authored-by: Filip Bachul <filipbachul@gmail.com>
This commit is contained in:
commit
dc293911ad
@ -71,3 +71,40 @@ impl Stream for Payload {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use actix_http::encoding::Decoder as Decompress;
|
||||||
|
use actix_http::BoxedPayloadStream;
|
||||||
|
use bytes::Bytes;
|
||||||
|
use futures_util::StreamExt;
|
||||||
|
use meili_snap::snapshot;
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn payload_to_large() {
|
||||||
|
let stream = futures::stream::iter(vec![
|
||||||
|
Ok(Bytes::from("1")),
|
||||||
|
Ok(Bytes::from("2")),
|
||||||
|
Ok(Bytes::from("3")),
|
||||||
|
Ok(Bytes::from("4")),
|
||||||
|
]);
|
||||||
|
let boxed_stream: BoxedPayloadStream = Box::pin(stream);
|
||||||
|
let actix_payload = dev::Payload::from(boxed_stream);
|
||||||
|
|
||||||
|
let payload = Payload {
|
||||||
|
limit: 3,
|
||||||
|
remaining: 3,
|
||||||
|
payload: Decompress::new(actix_payload, actix_http::ContentEncoding::Identity),
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut enumerated_payload_stream = payload.enumerate();
|
||||||
|
|
||||||
|
while let Some((idx, chunk)) = enumerated_payload_stream.next().await {
|
||||||
|
if idx == 3 {
|
||||||
|
snapshot!(chunk.unwrap_err(), @"The provided payload reached the size limit. The maximum accepted payload size is 3 B.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user