diff options
| author | jk <email@jkrause.io> | 2024-01-31 15:13:52 +0100 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2024-02-02 07:21:01 +0000 |
| commit | ab1450c655f7fdfc214e1556d16fc754ca684613 (patch) | |
| tree | 9ded305354a272d411059493e9475a3e39ff5cae /tests/prs_create.rs | |
| parent | ccdbc337ae16d7c70be44166269c8b2d5b9f5c09 (diff) | |
test: replace block_on with tokio::tests
This is intended to improve the reliabilty of the tests. there have been
particular issues with random tests never ending when run in the nix
configuration
see discussion here
https://github.com/DanConwayDev/ngit-cli/issues/
6#issuecomment-1918971239
and:
https://github.com/DanConwayDev/ngit-cli/pull/7
Diffstat (limited to 'tests/prs_create.rs')
| -rw-r--r-- | tests/prs_create.rs | 127 |
1 files changed, 65 insertions, 62 deletions
diff --git a/tests/prs_create.rs b/tests/prs_create.rs index ca92ac2..4f71e5a 100644 --- a/tests/prs_create.rs +++ b/tests/prs_create.rs | |||
| @@ -252,10 +252,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 252 | Ok((r51, r52, r53, r55, r56)) | 252 | Ok((r51, r52, r53, r55, r56)) |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | #[test] | 255 | #[tokio::test] |
| 256 | #[serial] | 256 | #[serial] |
| 257 | fn only_1_pr_kind_event_sent_to_each_relay() -> Result<()> { | 257 | async fn only_1_pr_kind_event_sent_to_each_relay() -> Result<()> { |
| 258 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 258 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 259 | for relay in [&r53, &r55, &r56] { | 259 | for relay in [&r53, &r55, &r56] { |
| 260 | assert_eq!( | 260 | assert_eq!( |
| 261 | relay | 261 | relay |
| @@ -269,10 +269,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 269 | Ok(()) | 269 | Ok(()) |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | #[test] | 272 | #[tokio::test] |
| 273 | #[serial] | 273 | #[serial] |
| 274 | fn only_1_pr_kind_event_sent_to_user_relays() -> Result<()> { | 274 | async fn only_1_pr_kind_event_sent_to_user_relays() -> Result<()> { |
| 275 | let (_, _, r53, r55, _) = futures::executor::block_on(prep_run_create_pr())?; | 275 | let (_, _, r53, r55, _) = prep_run_create_pr().await?; |
| 276 | for relay in [&r53, &r55] { | 276 | for relay in [&r53, &r55] { |
| 277 | assert_eq!( | 277 | assert_eq!( |
| 278 | relay | 278 | relay |
| @@ -286,10 +286,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 286 | Ok(()) | 286 | Ok(()) |
| 287 | } | 287 | } |
| 288 | 288 | ||
| 289 | #[test] | 289 | #[tokio::test] |
| 290 | #[serial] | 290 | #[serial] |
| 291 | fn only_1_pr_kind_event_sent_to_repo_relays() -> Result<()> { | 291 | async fn only_1_pr_kind_event_sent_to_repo_relays() -> Result<()> { |
| 292 | let (_, _, _, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 292 | let (_, _, _, r55, r56) = prep_run_create_pr().await?; |
| 293 | for relay in [&r55, &r56] { | 293 | for relay in [&r55, &r56] { |
| 294 | assert_eq!( | 294 | assert_eq!( |
| 295 | relay | 295 | relay |
| @@ -303,10 +303,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 303 | Ok(()) | 303 | Ok(()) |
| 304 | } | 304 | } |
| 305 | 305 | ||
| 306 | #[test] | 306 | #[tokio::test] |
| 307 | #[serial] | 307 | #[serial] |
| 308 | fn pr_not_sent_to_fallback_relay() -> Result<()> { | 308 | async fn pr_not_sent_to_fallback_relay() -> Result<()> { |
| 309 | let (r51, r52, _, _, _) = futures::executor::block_on(prep_run_create_pr())?; | 309 | let (r51, r52, _, _, _) = prep_run_create_pr().await?; |
| 310 | for relay in [&r51, &r52] { | 310 | for relay in [&r51, &r52] { |
| 311 | assert_eq!( | 311 | assert_eq!( |
| 312 | relay | 312 | relay |
| @@ -320,10 +320,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 320 | Ok(()) | 320 | Ok(()) |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | #[test] | 323 | #[tokio::test] |
| 324 | #[serial] | 324 | #[serial] |
| 325 | fn only_2_patch_kind_events_sent_to_each_relay() -> Result<()> { | 325 | async fn only_2_patch_kind_events_sent_to_each_relay() -> Result<()> { |
| 326 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 326 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 327 | for relay in [&r53, &r55, &r56] { | 327 | for relay in [&r53, &r55, &r56] { |
| 328 | assert_eq!( | 328 | assert_eq!( |
| 329 | relay | 329 | relay |
| @@ -337,10 +337,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 337 | Ok(()) | 337 | Ok(()) |
| 338 | } | 338 | } |
| 339 | 339 | ||
| 340 | #[test] | 340 | #[tokio::test] |
| 341 | #[serial] | 341 | #[serial] |
| 342 | fn patch_content_contains_patch_in_email_format() -> Result<()> { | 342 | async fn patch_content_contains_patch_in_email_format() -> Result<()> { |
| 343 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 343 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 344 | for relay in [&r53, &r55, &r56] { | 344 | for relay in [&r53, &r55, &r56] { |
| 345 | let patch_events: Vec<&nostr::Event> = relay | 345 | let patch_events: Vec<&nostr::Event> = relay |
| 346 | .events | 346 | .events |
| @@ -407,10 +407,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 407 | mod pr_tags { | 407 | mod pr_tags { |
| 408 | use super::*; | 408 | use super::*; |
| 409 | 409 | ||
| 410 | #[test] | 410 | #[tokio::test] |
| 411 | #[serial] | 411 | #[serial] |
| 412 | fn pr_tags_repo_commit() -> Result<()> { | 412 | async fn pr_tags_repo_commit() -> Result<()> { |
| 413 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 413 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 414 | let root_commit = GitTestRepo::default().initial_commit()?; | 414 | let root_commit = GitTestRepo::default().initial_commit()?; |
| 415 | 415 | ||
| 416 | for relay in [&r53, &r55, &r56] { | 416 | for relay in [&r53, &r55, &r56] { |
| @@ -429,10 +429,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 429 | Ok(()) | 429 | Ok(()) |
| 430 | } | 430 | } |
| 431 | 431 | ||
| 432 | #[test] | 432 | #[tokio::test] |
| 433 | #[serial] | 433 | #[serial] |
| 434 | fn pr_tags_title_as_name() -> Result<()> { | 434 | async fn pr_tags_title_as_name() -> Result<()> { |
| 435 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 435 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 436 | for relay in [&r53, &r55, &r56] { | 436 | for relay in [&r53, &r55, &r56] { |
| 437 | let pr_event: &nostr::Event = relay | 437 | let pr_event: &nostr::Event = relay |
| 438 | .events | 438 | .events |
| @@ -453,10 +453,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 453 | Ok(()) | 453 | Ok(()) |
| 454 | } | 454 | } |
| 455 | 455 | ||
| 456 | #[test] | 456 | #[tokio::test] |
| 457 | #[serial] | 457 | #[serial] |
| 458 | fn pr_tags_description() -> Result<()> { | 458 | async fn pr_tags_description() -> Result<()> { |
| 459 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 459 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 460 | for relay in [&r53, &r55, &r56] { | 460 | for relay in [&r53, &r55, &r56] { |
| 461 | let pr_event: &nostr::Event = relay | 461 | let pr_event: &nostr::Event = relay |
| 462 | .events | 462 | .events |
| @@ -477,10 +477,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 477 | Ok(()) | 477 | Ok(()) |
| 478 | } | 478 | } |
| 479 | 479 | ||
| 480 | #[test] | 480 | #[tokio::test] |
| 481 | #[serial] | 481 | #[serial] |
| 482 | fn pr_tags_branch_name() -> Result<()> { | 482 | async fn pr_tags_branch_name() -> Result<()> { |
| 483 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 483 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 484 | for relay in [&r53, &r55, &r56] { | 484 | for relay in [&r53, &r55, &r56] { |
| 485 | let pr_event: &nostr::Event = relay | 485 | let pr_event: &nostr::Event = relay |
| 486 | .events | 486 | .events |
| @@ -506,8 +506,8 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 506 | mod patch_tags { | 506 | mod patch_tags { |
| 507 | use super::*; | 507 | use super::*; |
| 508 | 508 | ||
| 509 | fn prep() -> Result<nostr::Event> { | 509 | async fn prep() -> Result<nostr::Event> { |
| 510 | let (_, _, r53, _, _) = futures::executor::block_on(prep_run_create_pr())?; | 510 | let (_, _, r53, _, _) = prep_run_create_pr().await?; |
| 511 | Ok(r53 | 511 | Ok(r53 |
| 512 | .events | 512 | .events |
| 513 | .iter() | 513 | .iter() |
| @@ -516,11 +516,11 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 516 | .clone()) | 516 | .clone()) |
| 517 | } | 517 | } |
| 518 | 518 | ||
| 519 | #[test] | 519 | #[tokio::test] |
| 520 | #[serial] | 520 | #[serial] |
| 521 | fn commit_and_commit_r() -> Result<()> { | 521 | async fn commit_and_commit_r() -> Result<()> { |
| 522 | static COMMIT_ID: &str = "fe973a840fba2a8ab37dd505c154854a69a6505c"; | 522 | static COMMIT_ID: &str = "fe973a840fba2a8ab37dd505c154854a69a6505c"; |
| 523 | let most_recent_patch = prep()?; | 523 | let most_recent_patch = prep().await?; |
| 524 | assert!( | 524 | assert!( |
| 525 | most_recent_patch | 525 | most_recent_patch |
| 526 | .tags | 526 | .tags |
| @@ -536,12 +536,12 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 536 | Ok(()) | 536 | Ok(()) |
| 537 | } | 537 | } |
| 538 | 538 | ||
| 539 | #[test] | 539 | #[tokio::test] |
| 540 | #[serial] | 540 | #[serial] |
| 541 | fn parent_commit() -> Result<()> { | 541 | async fn parent_commit() -> Result<()> { |
| 542 | // commit parent 'r' and 'parent-commit' tag | 542 | // commit parent 'r' and 'parent-commit' tag |
| 543 | static COMMIT_PARENT_ID: &str = "232efb37ebc67692c9e9ff58b83c0d3d63971a0a"; | 543 | static COMMIT_PARENT_ID: &str = "232efb37ebc67692c9e9ff58b83c0d3d63971a0a"; |
| 544 | let most_recent_patch = prep()?; | 544 | let most_recent_patch = prep().await?; |
| 545 | assert!( | 545 | assert!( |
| 546 | most_recent_patch.tags.iter().any( | 546 | most_recent_patch.tags.iter().any( |
| 547 | |t| t.as_vec()[0].eq("parent-commit") && t.as_vec()[1].eq(COMMIT_PARENT_ID) | 547 | |t| t.as_vec()[0].eq("parent-commit") && t.as_vec()[1].eq(COMMIT_PARENT_ID) |
| @@ -550,19 +550,20 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 550 | Ok(()) | 550 | Ok(()) |
| 551 | } | 551 | } |
| 552 | 552 | ||
| 553 | #[test] | 553 | #[tokio::test] |
| 554 | #[serial] | 554 | #[serial] |
| 555 | fn root_commit_as_r() -> Result<()> { | 555 | async fn root_commit_as_r() -> Result<()> { |
| 556 | assert!(prep()?.tags.iter().any(|t| t.as_vec()[0].eq("r") | 556 | assert!(prep().await?.tags.iter().any(|t| t.as_vec()[0].eq("r") |
| 557 | && t.as_vec()[1].eq("9ee507fc4357d7ee16a5d8901bedcd103f23c17d"))); | 557 | && t.as_vec()[1].eq("9ee507fc4357d7ee16a5d8901bedcd103f23c17d"))); |
| 558 | Ok(()) | 558 | Ok(()) |
| 559 | } | 559 | } |
| 560 | 560 | ||
| 561 | #[test] | 561 | #[tokio::test] |
| 562 | #[serial] | 562 | #[serial] |
| 563 | fn description_with_commit_message() -> Result<()> { | 563 | async fn description_with_commit_message() -> Result<()> { |
| 564 | assert_eq!( | 564 | assert_eq!( |
| 565 | prep()? | 565 | prep() |
| 566 | .await? | ||
| 566 | .tags | 567 | .tags |
| 567 | .iter() | 568 | .iter() |
| 568 | .find(|t| t.as_vec()[0].eq("description")) | 569 | .find(|t| t.as_vec()[0].eq("description")) |
| @@ -573,11 +574,12 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 573 | Ok(()) | 574 | Ok(()) |
| 574 | } | 575 | } |
| 575 | 576 | ||
| 576 | #[test] | 577 | #[tokio::test] |
| 577 | #[serial] | 578 | #[serial] |
| 578 | fn commit_author() -> Result<()> { | 579 | async fn commit_author() -> Result<()> { |
| 579 | assert_eq!( | 580 | assert_eq!( |
| 580 | prep()? | 581 | prep() |
| 582 | .await? | ||
| 581 | .tags | 583 | .tags |
| 582 | .iter() | 584 | .iter() |
| 583 | .find(|t| t.as_vec()[0].eq("author")) | 585 | .find(|t| t.as_vec()[0].eq("author")) |
| @@ -588,11 +590,12 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 588 | Ok(()) | 590 | Ok(()) |
| 589 | } | 591 | } |
| 590 | 592 | ||
| 591 | #[test] | 593 | #[tokio::test] |
| 592 | #[serial] | 594 | #[serial] |
| 593 | fn commit_committer() -> Result<()> { | 595 | async fn commit_committer() -> Result<()> { |
| 594 | assert_eq!( | 596 | assert_eq!( |
| 595 | prep()? | 597 | prep() |
| 598 | .await? | ||
| 596 | .tags | 599 | .tags |
| 597 | .iter() | 600 | .iter() |
| 598 | .find(|t| t.as_vec()[0].eq("committer")) | 601 | .find(|t| t.as_vec()[0].eq("committer")) |
| @@ -603,10 +606,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 603 | Ok(()) | 606 | Ok(()) |
| 604 | } | 607 | } |
| 605 | 608 | ||
| 606 | #[test] | 609 | #[tokio::test] |
| 607 | #[serial] | 610 | #[serial] |
| 608 | fn patch_tags_pr_event_as_root() -> Result<()> { | 611 | async fn patch_tags_pr_event_as_root() -> Result<()> { |
| 609 | let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; | 612 | let (_, _, r53, r55, r56) = prep_run_create_pr().await?; |
| 610 | for relay in [&r53, &r55, &r56] { | 613 | for relay in [&r53, &r55, &r56] { |
| 611 | let patch_events: Vec<&nostr::Event> = relay | 614 | let patch_events: Vec<&nostr::Event> = relay |
| 612 | .events | 615 | .events |
| @@ -705,10 +708,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 705 | Ok(()) | 708 | Ok(()) |
| 706 | } | 709 | } |
| 707 | 710 | ||
| 708 | #[test] | 711 | #[tokio::test] |
| 709 | #[serial] | 712 | #[serial] |
| 710 | fn check_cli_output() -> Result<()> { | 713 | async fn check_cli_output() -> Result<()> { |
| 711 | futures::executor::block_on(run_test_async())?; | 714 | run_test_async().await?; |
| 712 | Ok(()) | 715 | Ok(()) |
| 713 | } | 716 | } |
| 714 | } | 717 | } |
| @@ -787,10 +790,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 787 | Ok(()) | 790 | Ok(()) |
| 788 | } | 791 | } |
| 789 | 792 | ||
| 790 | #[test] | 793 | #[tokio::test] |
| 791 | #[serial] | 794 | #[serial] |
| 792 | fn only_first_rejected_event_sent_to_relay() -> Result<()> { | 795 | async fn only_first_rejected_event_sent_to_relay() -> Result<()> { |
| 793 | futures::executor::block_on(run_test_async())?; | 796 | run_test_async().await?; |
| 794 | Ok(()) | 797 | Ok(()) |
| 795 | } | 798 | } |
| 796 | } | 799 | } |
| @@ -879,10 +882,10 @@ mod sends_pr_and_2_patches_to_3_relays { | |||
| 879 | Ok((r51, r52, r53)) | 882 | Ok((r51, r52, r53)) |
| 880 | } | 883 | } |
| 881 | 884 | ||
| 882 | #[test] | 885 | #[tokio::test] |
| 883 | #[serial] | 886 | #[serial] |
| 884 | fn cli_show_rejection_with_comment() -> Result<()> { | 887 | async fn cli_show_rejection_with_comment() -> Result<()> { |
| 885 | futures::executor::block_on(run_test_async())?; | 888 | run_test_async().await?; |
| 886 | Ok(()) | 889 | Ok(()) |
| 887 | } | 890 | } |
| 888 | } | 891 | } |