Format payment-method and interrupted-delivery regressions

This commit is contained in:
archipelago
2026-10-06 07:10:48 -04:00
parent 607f54260e
commit d46f6ceeeb
2 changed files with 78 additions and 16 deletions
+50 -8
View File
@@ -201,14 +201,30 @@ async fn onchain_delivery_streams_to_owned_cache_and_preserves_incomplete_recove
.body(hyper::Body::from(vec![71u8; 2 * 1024 * 1024]))
.unwrap()
.into();
let item = cache_peer_response(dir.path(), "seller.onion", "film", "film.mp4", "video/mp4", 1, "onchain", response).await.unwrap();
let item = cache_peer_response(
dir.path(),
"seller.onion",
"film",
"film.mp4",
"video/mp4",
1,
"onchain",
response,
)
.await
.unwrap();
assert!(item.download_complete);
assert_eq!(item.ecash_backend, "onchain");
let (_, mut file) = crate::content_owned::open_owned(dir.path(), "seller.onion", "film").await.unwrap().unwrap();
let (_, mut file) = crate::content_owned::open_owned(dir.path(), "seller.onion", "film")
.await
.unwrap()
.unwrap();
let mut bytes = Vec::new();
file.read_to_end(&mut bytes).await.unwrap();
assert_eq!(bytes, vec![71u8; 2 * 1024 * 1024]);
let reply = cached_purchase_response(dir.path(), "seller.onion", "film", true, 0).await.unwrap();
let reply = cached_purchase_response(dir.path(), "seller.onion", "film", true, 0)
.await
.unwrap();
assert_eq!(reply["owned"], true);
assert!(reply.get("data").is_none());
@@ -216,12 +232,38 @@ async fn onchain_delivery_streams_to_owned_cache_and_preserves_incomplete_recove
.header("content-length", "100")
.body(hyper::Body::wrap_stream(futures_util::stream::iter([
Ok(bytes::Bytes::from_static(b"short")),
Err(std::io::Error::new(std::io::ErrorKind::UnexpectedEof, "connection closed before delivery completed")),
Err(std::io::Error::new(
std::io::ErrorKind::UnexpectedEof,
"connection closed before delivery completed",
)),
])))
.unwrap()
.into();
assert!(cache_peer_response(dir.path(), "seller.onion", "interrupted", "film.mp4", "video/mp4", 1, "onchain", truncated).await.is_err());
let entries = crate::content_owned::list_owned_checked(dir.path()).await.unwrap();
assert!(!entries.iter().find(|item| item.content_id == "interrupted").unwrap().download_complete);
assert!(existing_paid_content(dir.path(), "seller.onion", "interrupted", None, true).await.is_err());
assert!(cache_peer_response(
dir.path(),
"seller.onion",
"interrupted",
"film.mp4",
"video/mp4",
1,
"onchain",
truncated
)
.await
.is_err());
let entries = crate::content_owned::list_owned_checked(dir.path())
.await
.unwrap();
assert!(
!entries
.iter()
.find(|item| item.content_id == "interrupted")
.unwrap()
.download_complete
);
assert!(
existing_paid_content(dir.path(), "seller.onion", "interrupted", None, true)
.await
.is_err()
);
}