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
/// sync context.
async fn create_client() -> Client {
fn create_client() -> Client {
Client::new(
concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION")),
None,
@ -231,8 +231,16 @@ mod test {
#[tokio::test]
async fn test_crates_io_sparse_registry() {
let client = create_client().await;
let client = create_client();
let crate_name = "cargo-binstall";
let version_req = &VersionReq::parse("=1.0.0").unwrap();
let serialized_manifest_from_sparse_task = tokio::spawn({
let client = client.clone();
let version_req = version_req.clone();
async move {
let sparse_registry: Registry = Registry::crates_io_sparse_registry();
assert!(
matches!(sparse_registry, Registry::Sparse(_)),
@ -240,22 +248,23 @@ mod test {
sparse_registry
);
let crate_name = "cargo-binstall";
let version_req = &VersionReq::parse("=1.0.0").unwrap();
let manifest_from_sparse = sparse_registry
.fetch_crate_matched(client.clone(), crate_name, version_req)
.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)
.await
.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();
assert_eq!(
serialized_manifest_from_sparse,
serialized_manifest_from_sparse_task.await.unwrap(),
serialized_manifest_from_cratesio_api
);
}
@ -263,8 +272,16 @@ mod test {
#[cfg(feature = "git")]
#[tokio::test]
async fn test_crates_io_git_registry() {
let client = create_client().await;
let client = create_client();
let crate_name = "cargo-binstall";
let version_req = &VersionReq::parse("=1.0.0").unwrap();
let serialized_manifest_from_git_task = tokio::spawn({
let version_req = version_req.clone();
let client = client.clone();
async move {
let git_registry: Registry = "https://github.com/rust-lang/crates.io-index"
.parse()
.unwrap();
@ -274,23 +291,23 @@ mod test {
git_registry
);
let crate_name = "cargo-binstall";
let version_req = &VersionReq::parse("=1.0.0").unwrap();
let manifest_from_git = git_registry
.fetch_crate_matched(client.clone(), crate_name, version_req)
.fetch_crate_matched(client, crate_name, &version_req)
.await
.unwrap();
to_string(&manifest_from_git).unwrap()
}
});
let manifest_from_cratesio_api = Registry::default()
.fetch_crate_matched(client, crate_name, version_req)
.await
.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();
assert_eq!(
serialized_manifest_from_git,
serialized_manifest_from_git_task.await.unwrap(),
serialized_manifest_from_cratesio_api
);
}