Optimize unit test in binstalk-registry

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2024-06-10 23:15:47 +10:00
parent 4fb93aa9d2
commit 61a5ed22d0
No known key found for this signature in database
GPG key ID: 76D1E687CA3C4928

View file

@ -218,7 +218,7 @@ mod test {
/// Mark this as an async fn so that you won't accidentally use it in /// Mark this as an async fn so that you won't accidentally use it in
/// sync context. /// sync context.
async fn create_client() -> Client { fn create_client() -> Client {
Client::new( Client::new(
concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION")), concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION")),
None, None,
@ -231,31 +231,40 @@ mod test {
#[tokio::test] #[tokio::test]
async fn test_crates_io_sparse_registry() { async fn test_crates_io_sparse_registry() {
let client = create_client().await; let client = create_client();
let sparse_registry: Registry = Registry::crates_io_sparse_registry();
assert!(
matches!(sparse_registry, Registry::Sparse(_)),
"{:?}",
sparse_registry
);
let crate_name = "cargo-binstall"; let crate_name = "cargo-binstall";
let version_req = &VersionReq::parse("=1.0.0").unwrap(); let version_req = &VersionReq::parse("=1.0.0").unwrap();
let manifest_from_sparse = sparse_registry
.fetch_crate_matched(client.clone(), crate_name, version_req) let serialized_manifest_from_sparse_task = tokio::spawn({
.await let client = client.clone();
.unwrap(); let version_req = version_req.clone();
async move {
let sparse_registry: Registry = Registry::crates_io_sparse_registry();
assert!(
matches!(sparse_registry, Registry::Sparse(_)),
"{:?}",
sparse_registry
);
let manifest_from_sparse = sparse_registry
.fetch_crate_matched(client, crate_name, &version_req)
.await
.unwrap();
to_string(&manifest_from_sparse).unwrap()
}
});
let manifest_from_cratesio_api = fetch_crate_cratesio_api(client, crate_name, version_req) let manifest_from_cratesio_api = fetch_crate_cratesio_api(client, crate_name, version_req)
.await .await
.unwrap(); .unwrap();
let serialized_manifest_from_sparse = to_string(&manifest_from_sparse).unwrap();
let serialized_manifest_from_cratesio_api = to_string(&manifest_from_cratesio_api).unwrap(); let serialized_manifest_from_cratesio_api = to_string(&manifest_from_cratesio_api).unwrap();
assert_eq!( assert_eq!(
serialized_manifest_from_sparse, serialized_manifest_from_sparse_task.await.unwrap(),
serialized_manifest_from_cratesio_api serialized_manifest_from_cratesio_api
); );
} }
@ -263,34 +272,42 @@ mod test {
#[cfg(feature = "git")] #[cfg(feature = "git")]
#[tokio::test] #[tokio::test]
async fn test_crates_io_git_registry() { async fn test_crates_io_git_registry() {
let client = create_client().await; let client = create_client();
let git_registry: Registry = "https://github.com/rust-lang/crates.io-index"
.parse()
.unwrap();
assert!(
matches!(git_registry, Registry::Git(_)),
"{:?}",
git_registry
);
let crate_name = "cargo-binstall"; let crate_name = "cargo-binstall";
let version_req = &VersionReq::parse("=1.0.0").unwrap(); let version_req = &VersionReq::parse("=1.0.0").unwrap();
let manifest_from_git = git_registry
.fetch_crate_matched(client.clone(), crate_name, version_req) let serialized_manifest_from_git_task = tokio::spawn({
.await let version_req = version_req.clone();
.unwrap(); let client = client.clone();
async move {
let git_registry: Registry = "https://github.com/rust-lang/crates.io-index"
.parse()
.unwrap();
assert!(
matches!(git_registry, Registry::Git(_)),
"{:?}",
git_registry
);
let manifest_from_git = git_registry
.fetch_crate_matched(client, crate_name, &version_req)
.await
.unwrap();
to_string(&manifest_from_git).unwrap()
}
});
let manifest_from_cratesio_api = Registry::default() let manifest_from_cratesio_api = Registry::default()
.fetch_crate_matched(client, crate_name, version_req) .fetch_crate_matched(client, crate_name, version_req)
.await .await
.unwrap(); .unwrap();
let serialized_manifest_from_git = to_string(&manifest_from_git).unwrap();
let serialized_manifest_from_cratesio_api = to_string(&manifest_from_cratesio_api).unwrap(); let serialized_manifest_from_cratesio_api = to_string(&manifest_from_cratesio_api).unwrap();
assert_eq!( assert_eq!(
serialized_manifest_from_git, serialized_manifest_from_git_task.await.unwrap(),
serialized_manifest_from_cratesio_api serialized_manifest_from_cratesio_api
); );
} }