upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/tests/send.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2024-02-16 22:31:29 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2024-02-16 22:31:29 +0000
commit701668b02d999af42f51d8bd25fffb2a8692c3c8 (patch)
tree7defd0e7e711d743c8464994c2223a7a332ccf2a /tests/send.rs
parent61ffbf2008c0aaaee3d19ac027d63bca823dc8c9 (diff)
refactor: rename PR to proposal
PR is a problematic term when it ambiguous whether the set of patches are PR-like or email-patch like.
Diffstat (limited to 'tests/send.rs')
-rw-r--r--tests/send.rs95
1 files changed, 49 insertions, 46 deletions
diff --git a/tests/send.rs b/tests/send.rs
index 6d3e138..9c8561a 100644
--- a/tests/send.rs
+++ b/tests/send.rs
@@ -159,7 +159,7 @@ fn prep_git_repo() -> Result<GitTestRepo> {
159 Ok(test_repo) 159 Ok(test_repo)
160} 160}
161 161
162fn cli_tester_create_pr(git_repo: &GitTestRepo, include_cover_letter: bool) -> CliTester { 162fn cli_tester_create_proposal(git_repo: &GitTestRepo, include_cover_letter: bool) -> CliTester {
163 let mut args = vec![ 163 let mut args = vec![
164 "--nsec", 164 "--nsec",
165 TEST_KEY_1_NSEC, 165 TEST_KEY_1_NSEC,
@@ -199,7 +199,7 @@ fn expect_msgs_first(p: &mut CliTester, include_cover_letter: bool) -> Result<()
199 Ok(()) 199 Ok(())
200} 200}
201 201
202async fn prep_run_create_pr( 202async fn prep_run_create_proposal(
203 include_cover_letter: bool, 203 include_cover_letter: bool,
204) -> Result<( 204) -> Result<(
205 Relay<'static>, 205 Relay<'static>,
@@ -245,7 +245,7 @@ async fn prep_run_create_pr(
245 245
246 // // check relay had the right number of events 246 // // check relay had the right number of events
247 let cli_tester_handle = std::thread::spawn(move || -> Result<()> { 247 let cli_tester_handle = std::thread::spawn(move || -> Result<()> {
248 let mut p = cli_tester_create_pr(&git_repo, include_cover_letter); 248 let mut p = cli_tester_create_proposal(&git_repo, include_cover_letter);
249 p.expect_end_eventually()?; 249 p.expect_end_eventually()?;
250 for p in [51, 52, 53, 55, 56] { 250 for p in [51, 52, 53, 55, 56] {
251 relay::shutdown_relay(8000 + p)?; 251 relay::shutdown_relay(8000 + p)?;
@@ -270,8 +270,8 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
270 use super::*; 270 use super::*;
271 #[tokio::test] 271 #[tokio::test]
272 #[serial] 272 #[serial]
273 async fn only_1_pr_kind_event_sent_to_each_relay() -> Result<()> { 273 async fn only_1_cover_letter_event_sent_to_each_relay() -> Result<()> {
274 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 274 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
275 for relay in [&r53, &r55, &r56] { 275 for relay in [&r53, &r55, &r56] {
276 assert_eq!( 276 assert_eq!(
277 relay.events.iter().filter(|e| is_cover_letter(e)).count(), 277 relay.events.iter().filter(|e| is_cover_letter(e)).count(),
@@ -283,8 +283,8 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
283 283
284 #[tokio::test] 284 #[tokio::test]
285 #[serial] 285 #[serial]
286 async fn only_1_pr_kind_event_sent_to_user_relays() -> Result<()> { 286 async fn only_1_cover_letter_event_sent_to_user_relays() -> Result<()> {
287 let (_, _, r53, r55, _) = prep_run_create_pr(true).await?; 287 let (_, _, r53, r55, _) = prep_run_create_proposal(true).await?;
288 for relay in [&r53, &r55] { 288 for relay in [&r53, &r55] {
289 assert_eq!( 289 assert_eq!(
290 relay.events.iter().filter(|e| is_cover_letter(e)).count(), 290 relay.events.iter().filter(|e| is_cover_letter(e)).count(),
@@ -296,8 +296,8 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
296 296
297 #[tokio::test] 297 #[tokio::test]
298 #[serial] 298 #[serial]
299 async fn only_1_pr_kind_event_sent_to_repo_relays() -> Result<()> { 299 async fn only_1_cover_letter_event_sent_to_repo_relays() -> Result<()> {
300 let (_, _, _, r55, r56) = prep_run_create_pr(true).await?; 300 let (_, _, _, r55, r56) = prep_run_create_proposal(true).await?;
301 for relay in [&r55, &r56] { 301 for relay in [&r55, &r56] {
302 assert_eq!( 302 assert_eq!(
303 relay.events.iter().filter(|e| is_cover_letter(e)).count(), 303 relay.events.iter().filter(|e| is_cover_letter(e)).count(),
@@ -309,8 +309,8 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
309 309
310 #[tokio::test] 310 #[tokio::test]
311 #[serial] 311 #[serial]
312 async fn only_1_pr_kind_event_sent_to_fallback_relays() -> Result<()> { 312 async fn only_1_cover_letter_event_sent_to_fallback_relays() -> Result<()> {
313 let (r51, r52, _, _, _) = prep_run_create_pr(true).await?; 313 let (r51, r52, _, _, _) = prep_run_create_proposal(true).await?;
314 for relay in [&r51, &r52] { 314 for relay in [&r51, &r52] {
315 assert_eq!( 315 assert_eq!(
316 relay.events.iter().filter(|e| is_cover_letter(e)).count(), 316 relay.events.iter().filter(|e| is_cover_letter(e)).count(),
@@ -323,7 +323,7 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
323 #[tokio::test] 323 #[tokio::test]
324 #[serial] 324 #[serial]
325 async 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 (r51, r52, r53, r55, r56) = prep_run_create_pr(true).await?; 326 let (r51, r52, r53, r55, r56) = prep_run_create_proposal(true).await?;
327 for relay in [&r51, &r52, &r53, &r55, &r56] { 327 for relay in [&r51, &r52, &r53, &r55, &r56] {
328 assert_eq!(relay.events.iter().filter(|e| is_patch(e)).count(), 2,); 328 assert_eq!(relay.events.iter().filter(|e| is_patch(e)).count(), 2,);
329 } 329 }
@@ -334,7 +334,7 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
334 #[serial] 334 #[serial]
335 async fn patch_content_contains_patch_in_email_format_with_patch_series_numbers() -> Result<()> 335 async fn patch_content_contains_patch_in_email_format_with_patch_series_numbers() -> Result<()>
336 { 336 {
337 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 337 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
338 for relay in [&r53, &r55, &r56] { 338 for relay in [&r53, &r55, &r56] {
339 let patch_events: Vec<&nostr::Event> = 339 let patch_events: Vec<&nostr::Event> =
340 relay.events.iter().filter(|e| is_patch(e)).collect(); 340 relay.events.iter().filter(|e| is_patch(e)).collect();
@@ -395,19 +395,19 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
395 Ok(()) 395 Ok(())
396 } 396 }
397 397
398 mod pr_tags { 398 mod cover_letter_tags {
399 use super::*; 399 use super::*;
400 400
401 #[tokio::test] 401 #[tokio::test]
402 #[serial] 402 #[serial]
403 async fn root_commit_as_r() -> Result<()> { 403 async fn root_commit_as_r() -> Result<()> {
404 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 404 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
405 for relay in [&r53, &r55, &r56] { 405 for relay in [&r53, &r55, &r56] {
406 let pr_event: &nostr::Event = 406 let cover_letter_event: &nostr::Event =
407 relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); 407 relay.events.iter().find(|e| is_cover_letter(e)).unwrap();
408 408
409 assert_eq!( 409 assert_eq!(
410 pr_event 410 cover_letter_event
411 .iter_tags() 411 .iter_tags()
412 .find(|t| t.as_vec()[0].eq("r")) 412 .find(|t| t.as_vec()[0].eq("r"))
413 .unwrap() 413 .unwrap()
@@ -421,11 +421,11 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
421 #[tokio::test] 421 #[tokio::test]
422 #[serial] 422 #[serial]
423 async fn a_tag_for_repo_event() -> Result<()> { 423 async fn a_tag_for_repo_event() -> Result<()> {
424 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 424 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
425 for relay in [&r53, &r55, &r56] { 425 for relay in [&r53, &r55, &r56] {
426 let pr_event: &nostr::Event = 426 let cover_letter_event: &nostr::Event =
427 relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); 427 relay.events.iter().find(|e| is_cover_letter(e)).unwrap();
428 assert!(pr_event.iter_tags().any(|t| t.as_vec()[0].eq("a") 428 assert!(cover_letter_event.iter_tags().any(|t| t.as_vec()[0].eq("a")
429 && t.as_vec()[1].eq(&format!( 429 && t.as_vec()[1].eq(&format!(
430 "{REPOSITORY_KIND}:{TEST_KEY_1_PUBKEY_HEX}:{}", 430 "{REPOSITORY_KIND}:{TEST_KEY_1_PUBKEY_HEX}:{}",
431 generate_repo_ref_event().identifier().unwrap() 431 generate_repo_ref_event().identifier().unwrap()
@@ -443,13 +443,13 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
443 .unwrap() 443 .unwrap()
444 .as_vec() 444 .as_vec()
445 .clone()[1..]; 445 .clone()[1..];
446 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 446 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
447 for relay in [&r53, &r55, &r56] { 447 for relay in [&r53, &r55, &r56] {
448 for m in maintainers { 448 for m in maintainers {
449 let pr_event: &nostr::Event = 449 let cover_letter_event: &nostr::Event =
450 relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); 450 relay.events.iter().find(|e| is_cover_letter(e)).unwrap();
451 assert!( 451 assert!(
452 pr_event 452 cover_letter_event
453 .iter_tags() 453 .iter_tags()
454 .any(|t| { t.as_vec()[0].eq("p") && t.as_vec()[1].eq(m) }) 454 .any(|t| { t.as_vec()[0].eq("p") && t.as_vec()[1].eq(m) })
455 ); 455 );
@@ -461,12 +461,12 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
461 #[tokio::test] 461 #[tokio::test]
462 #[serial] 462 #[serial]
463 async fn t_tag_cover_letter() -> Result<()> { 463 async fn t_tag_cover_letter() -> Result<()> {
464 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 464 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
465 for relay in [&r53, &r55, &r56] { 465 for relay in [&r53, &r55, &r56] {
466 let pr_event: &nostr::Event = 466 let cover_letter_event: &nostr::Event =
467 relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); 467 relay.events.iter().find(|e| is_cover_letter(e)).unwrap();
468 assert!( 468 assert!(
469 pr_event 469 cover_letter_event
470 .iter_tags() 470 .iter_tags()
471 .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"cover-letter") }) 471 .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"cover-letter") })
472 ); 472 );
@@ -477,12 +477,12 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
477 #[tokio::test] 477 #[tokio::test]
478 #[serial] 478 #[serial]
479 async fn t_tag_root() -> Result<()> { 479 async fn t_tag_root() -> Result<()> {
480 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 480 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
481 for relay in [&r53, &r55, &r56] { 481 for relay in [&r53, &r55, &r56] {
482 let pr_event: &nostr::Event = 482 let cover_letter_event: &nostr::Event =
483 relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); 483 relay.events.iter().find(|e| is_cover_letter(e)).unwrap();
484 assert!( 484 assert!(
485 pr_event 485 cover_letter_event
486 .iter_tags() 486 .iter_tags()
487 .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"root") }) 487 .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"root") })
488 ); 488 );
@@ -493,14 +493,14 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
493 #[tokio::test] 493 #[tokio::test]
494 #[serial] 494 #[serial]
495 async fn pr_tags_branch_name() -> Result<()> { 495 async fn pr_tags_branch_name() -> Result<()> {
496 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 496 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
497 for relay in [&r53, &r55, &r56] { 497 for relay in [&r53, &r55, &r56] {
498 let pr_event: &nostr::Event = 498 let cover_letter_event: &nostr::Event =
499 relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); 499 relay.events.iter().find(|e| is_cover_letter(e)).unwrap();
500 500
501 // branch-name tag 501 // branch-name tag
502 assert_eq!( 502 assert_eq!(
503 pr_event 503 cover_letter_event
504 .iter_tags() 504 .iter_tags()
505 .find(|t| t.as_vec()[0].eq("branch-name")) 505 .find(|t| t.as_vec()[0].eq("branch-name"))
506 .unwrap() 506 .unwrap()
@@ -516,7 +516,7 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
516 use super::*; 516 use super::*;
517 517
518 async fn prep() -> Result<nostr::Event> { 518 async fn prep() -> Result<nostr::Event> {
519 let (_, _, r53, _, _) = prep_run_create_pr(true).await?; 519 let (_, _, r53, _, _) = prep_run_create_proposal(true).await?;
520 Ok(r53.events.iter().find(|e| is_patch(e)).unwrap().clone()) 520 Ok(r53.events.iter().find(|e| is_patch(e)).unwrap().clone())
521 } 521 }
522 522
@@ -649,14 +649,14 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
649 649
650 #[tokio::test] 650 #[tokio::test]
651 #[serial] 651 #[serial]
652 async fn patch_tags_pr_event_as_root() -> Result<()> { 652 async fn patch_tags_cover_letter_event_as_root() -> Result<()> {
653 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 653 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
654 for relay in [&r53, &r55, &r56] { 654 for relay in [&r53, &r55, &r56] {
655 let patch_events: Vec<&nostr::Event> = 655 let patch_events: Vec<&nostr::Event> =
656 relay.events.iter().filter(|e| is_patch(e)).collect(); 656 relay.events.iter().filter(|e| is_patch(e)).collect();
657 657
658 let most_recent_patch = patch_events[0]; 658 let most_recent_patch = patch_events[0];
659 let pr_event = relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); 659 let cover_letter_event = relay.events.iter().find(|e| is_cover_letter(e)).unwrap();
660 660
661 let root_event_tag = most_recent_patch 661 let root_event_tag = most_recent_patch
662 .tags 662 .tags
@@ -666,7 +666,10 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
666 }) 666 })
667 .unwrap(); 667 .unwrap();
668 668
669 assert_eq!(root_event_tag.as_vec()[1], pr_event.id.to_string()); 669 assert_eq!(
670 root_event_tag.as_vec()[1],
671 cover_letter_event.id.to_string()
672 );
670 } 673 }
671 Ok(()) 674 Ok(())
672 } 675 }
@@ -674,7 +677,7 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
674 #[tokio::test] 677 #[tokio::test]
675 #[serial] 678 #[serial]
676 async fn second_patch_tags_first_with_reply() -> Result<()> { 679 async fn second_patch_tags_first_with_reply() -> Result<()> {
677 let (_, _, r53, r55, r56) = prep_run_create_pr(true).await?; 680 let (_, _, r53, r55, r56) = prep_run_create_proposal(true).await?;
678 for relay in [&r53, &r55, &r56] { 681 for relay in [&r53, &r55, &r56] {
679 let patch_events = relay 682 let patch_events = relay
680 .events 683 .events
@@ -749,7 +752,7 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
749 752
750 // // check relay had the right number of events 753 // // check relay had the right number of events
751 let cli_tester_handle = std::thread::spawn(move || -> Result<()> { 754 let cli_tester_handle = std::thread::spawn(move || -> Result<()> {
752 let mut p = cli_tester_create_pr(&git_repo, true); 755 let mut p = cli_tester_create_proposal(&git_repo, true);
753 expect_msgs_first(&mut p, true)?; 756 expect_msgs_first(&mut p, true)?;
754 relay::expect_send_with_progress( 757 relay::expect_send_with_progress(
755 &mut p, 758 &mut p,
@@ -840,7 +843,7 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
840 843
841 // // check relay had the right number of events 844 // // check relay had the right number of events
842 let cli_tester_handle = std::thread::spawn(move || -> Result<()> { 845 let cli_tester_handle = std::thread::spawn(move || -> Result<()> {
843 let mut p = cli_tester_create_pr(&git_repo, true); 846 let mut p = cli_tester_create_proposal(&git_repo, true);
844 p.expect_end_eventually()?; 847 p.expect_end_eventually()?;
845 for p in [51, 52, 53, 55, 56] { 848 for p in [51, 52, 53, 55, 56] {
846 relay::shutdown_relay(8000 + p)?; 849 relay::shutdown_relay(8000 + p)?;
@@ -919,7 +922,7 @@ mod sends_cover_letter_and_2_patches_to_3_relays {
919 922
920 // // check relay had the right number of events 923 // // check relay had the right number of events
921 let cli_tester_handle = std::thread::spawn(move || -> Result<()> { 924 let cli_tester_handle = std::thread::spawn(move || -> Result<()> {
922 let mut p = cli_tester_create_pr(&git_repo, true); 925 let mut p = cli_tester_create_proposal(&git_repo, true);
923 expect_msgs_first(&mut p, true)?; 926 expect_msgs_first(&mut p, true)?;
924 // p.expect_end_with("bla")?; 927 // p.expect_end_with("bla")?;
925 relay::expect_send_with_progress( 928 relay::expect_send_with_progress(
@@ -1011,7 +1014,7 @@ mod sends_2_patches_without_cover_letter {
1011 1014
1012 // // check relay had the right number of events 1015 // // check relay had the right number of events
1013 let cli_tester_handle = std::thread::spawn(move || -> Result<()> { 1016 let cli_tester_handle = std::thread::spawn(move || -> Result<()> {
1014 let mut p = cli_tester_create_pr(&git_repo, false); 1017 let mut p = cli_tester_create_proposal(&git_repo, false);
1015 1018
1016 expect_msgs_first(&mut p, false)?; 1019 expect_msgs_first(&mut p, false)?;
1017 relay::expect_send_with_progress( 1020 relay::expect_send_with_progress(
@@ -1055,7 +1058,7 @@ mod sends_2_patches_without_cover_letter {
1055 #[tokio::test] 1058 #[tokio::test]
1056 #[serial] 1059 #[serial]
1057 async fn no_cover_letter_event() -> Result<()> { 1060 async fn no_cover_letter_event() -> Result<()> {
1058 let (_, _, r53, r55, r56) = prep_run_create_pr(false).await?; 1061 let (_, _, r53, r55, r56) = prep_run_create_proposal(false).await?;
1059 for relay in [&r53, &r55, &r56] { 1062 for relay in [&r53, &r55, &r56] {
1060 assert_eq!( 1063 assert_eq!(
1061 relay.events.iter().filter(|e| is_cover_letter(e)).count(), 1064 relay.events.iter().filter(|e| is_cover_letter(e)).count(),
@@ -1068,7 +1071,7 @@ mod sends_2_patches_without_cover_letter {
1068 #[tokio::test] 1071 #[tokio::test]
1069 #[serial] 1072 #[serial]
1070 async fn two_patch_events() -> Result<()> { 1073 async fn two_patch_events() -> Result<()> {
1071 let (_, _, r53, r55, r56) = prep_run_create_pr(false).await?; 1074 let (_, _, r53, r55, r56) = prep_run_create_proposal(false).await?;
1072 for relay in [&r53, &r55, &r56] { 1075 for relay in [&r53, &r55, &r56] {
1073 assert_eq!(relay.events.iter().filter(|e| is_patch(e)).count(), 2); 1076 assert_eq!(relay.events.iter().filter(|e| is_patch(e)).count(), 2);
1074 } 1077 }
@@ -1079,7 +1082,7 @@ mod sends_2_patches_without_cover_letter {
1079 #[serial] 1082 #[serial]
1080 // TODO check this is the ancestor 1083 // TODO check this is the ancestor
1081 async fn first_patch_with_root_t_tag() -> Result<()> { 1084 async fn first_patch_with_root_t_tag() -> Result<()> {
1082 let (_, _, r53, r55, r56) = prep_run_create_pr(false).await?; 1085 let (_, _, r53, r55, r56) = prep_run_create_proposal(false).await?;
1083 for relay in [&r53, &r55, &r56] { 1086 for relay in [&r53, &r55, &r56] {
1084 let patch_events = relay 1087 let patch_events = relay
1085 .events 1088 .events
@@ -1106,7 +1109,7 @@ mod sends_2_patches_without_cover_letter {
1106 #[tokio::test] 1109 #[tokio::test]
1107 #[serial] 1110 #[serial]
1108 async fn second_patch_lists_first_as_root() -> Result<()> { 1111 async fn second_patch_lists_first_as_root() -> Result<()> {
1109 let (_, _, r53, r55, r56) = prep_run_create_pr(false).await?; 1112 let (_, _, r53, r55, r56) = prep_run_create_proposal(false).await?;
1110 for relay in [&r53, &r55, &r56] { 1113 for relay in [&r53, &r55, &r56] {
1111 let patch_events = relay 1114 let patch_events = relay
1112 .events 1115 .events