upleb.uk

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

summaryrefslogtreecommitdiff
path: root/tests/prs_create.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2023-12-01 00:00:00 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2023-12-01 00:00:00 +0000
commit06be0bc44011411b78217459f505ed12281b32c4 (patch)
tree36cab80e309d33f20fedcc97258700a379aa348e /tests/prs_create.rs
parent492cc67887855cecb3fb501c4b61af50bf645b73 (diff)
feat(prs-list) list and pull selected as branch
- fetch prs and present as a selectable list - create and / or checkout branch for selected pr - apply latest patches as commits
Diffstat (limited to 'tests/prs_create.rs')
-rw-r--r--tests/prs_create.rs163
1 files changed, 121 insertions, 42 deletions
diff --git a/tests/prs_create.rs b/tests/prs_create.rs
index dc6eec0..d00bb9f 100644
--- a/tests/prs_create.rs
+++ b/tests/prs_create.rs
@@ -147,9 +147,6 @@ mod sends_pr_and_2_patches_to_3_relays {
147 147
148 use super::*; 148 use super::*;
149 149
150 static PR_KIND: u64 = 318;
151 static PATCH_KIND: u64 = 317;
152
153 fn prep_git_repo() -> Result<GitTestRepo> { 150 fn prep_git_repo() -> Result<GitTestRepo> {
154 let test_repo = GitTestRepo::default(); 151 let test_repo = GitTestRepo::default();
155 test_repo.populate()?; 152 test_repo.populate()?;
@@ -411,8 +408,31 @@ mod sends_pr_and_2_patches_to_3_relays {
411 use super::*; 408 use super::*;
412 #[test] 409 #[test]
413 #[serial] 410 #[serial]
411 fn pr_tags_repo_commit_as_identifier() -> Result<()> {
412 let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?;
413 let root_commit = GitTestRepo::default().initial_commit()?;
414
415 for relay in [&r53, &r55, &r56] {
416 let pr_event: &nostr::Event = relay
417 .events
418 .iter()
419 .find(|e| e.kind.as_u64().eq(&PR_KIND))
420 .unwrap();
421
422 // root commit identifier tag
423 assert!(pr_event.tags.iter().any(
424 |t| t.as_vec()[0].eq("d") && t.as_vec()[1].eq(&format!("{}", root_commit))
425 ));
426 }
427 Ok(())
428 }
429
430 #[test]
431 #[serial]
414 fn pr_tags_repo_commit() -> Result<()> { 432 fn pr_tags_repo_commit() -> Result<()> {
415 let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; 433 let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?;
434 let root_commit = GitTestRepo::default().initial_commit()?;
435
416 for relay in [&r53, &r55, &r56] { 436 for relay in [&r53, &r55, &r56] {
417 let pr_event: &nostr::Event = relay 437 let pr_event: &nostr::Event = relay
418 .events 438 .events
@@ -421,8 +441,10 @@ mod sends_pr_and_2_patches_to_3_relays {
421 .unwrap(); 441 .unwrap();
422 442
423 // root commit 'r' tag 443 // root commit 'r' tag
424 assert!(pr_event.tags.iter().any(|t| t.as_vec()[0].eq("r") 444 assert!(
425 && t.as_vec()[1].eq("r-9ee507fc4357d7ee16a5d8901bedcd103f23c17d"))); 445 pr_event.tags.iter().any(|t| t.as_vec()[0].eq("r")
446 && t.as_vec()[1].eq(&format!("r-{}", root_commit)))
447 );
426 } 448 }
427 Ok(()) 449 Ok(())
428 } 450 }
@@ -503,50 +525,107 @@ mod sends_pr_and_2_patches_to_3_relays {
503 525
504 mod patch_tags { 526 mod patch_tags {
505 use super::*; 527 use super::*;
528
529 fn prep() -> Result<nostr::Event> {
530 let (_, _, r53, _, _) = futures::executor::block_on(prep_run_create_pr())?;
531 Ok(r53
532 .events
533 .iter()
534 .find(|e| e.kind.as_u64().eq(&PATCH_KIND))
535 .unwrap()
536 .clone())
537 }
538
506 #[test] 539 #[test]
507 #[serial] 540 #[serial]
508 fn patch_tags_correctly_formatted() -> Result<()> { 541 fn commit_and_commit_r() -> Result<()> {
509 let (_, _, r53, r55, r56) = futures::executor::block_on(prep_run_create_pr())?; 542 static COMMIT_ID: &str = "fe973a840fba2a8ab37dd505c154854a69a6505c";
510 for relay in [&r53, &r55, &r56] { 543 let most_recent_patch = prep()?;
511 let patch_events: Vec<&nostr::Event> = relay 544 assert!(
512 .events 545 most_recent_patch
546 .tags
513 .iter() 547 .iter()
514 .filter(|e| e.kind.as_u64().eq(&PATCH_KIND)) 548 .any(|t| t.as_vec()[0].eq("r") && t.as_vec()[1].eq(COMMIT_ID))
515 .collect(); 549 );
550 assert!(
551 most_recent_patch
552 .tags
553 .iter()
554 .any(|t| t.as_vec()[0].eq("commit") && t.as_vec()[1].eq(COMMIT_ID))
555 );
556 Ok(())
557 }
516 558
517 static COMMIT_ID: &str = "fe973a840fba2a8ab37dd505c154854a69a6505c"; 559 #[test]
518 let most_recent_patch = patch_events[0]; 560 #[serial]
561 fn parent_commit_and_parent_commit_r() -> Result<()> {
562 // commit parent 'r' and 'parent-commit' tag
563 static COMMIT_PARENT_ID: &str = "232efb37ebc67692c9e9ff58b83c0d3d63971a0a";
564 let most_recent_patch = prep()?;
565 assert!(
566 most_recent_patch
567 .tags
568 .iter()
569 .any(|t| t.as_vec()[0].eq("r") && t.as_vec()[1].eq(COMMIT_PARENT_ID))
570 );
571 assert!(
572 most_recent_patch.tags.iter().any(
573 |t| t.as_vec()[0].eq("parent-commit") && t.as_vec()[1].eq(COMMIT_PARENT_ID)
574 )
575 );
576 Ok(())
577 }
519 578
520 // commit 'r' and 'commit' tag 579 #[test]
521 assert!( 580 #[serial]
522 most_recent_patch 581 fn root_commit_as_r_with_r_hypen_prefix() -> Result<()> {
523 .tags 582 assert!(prep()?.tags.iter().any(|t| t.as_vec()[0].eq("r")
524 .iter() 583 && t.as_vec()[1].eq("r-9ee507fc4357d7ee16a5d8901bedcd103f23c17d")));
525 .any(|t| t.as_vec()[0].eq("r") && t.as_vec()[1].eq(COMMIT_ID)) 584 Ok(())
526 ); 585 }
527 assert!(
528 most_recent_patch
529 .tags
530 .iter()
531 .any(|t| t.as_vec()[0].eq("commit") && t.as_vec()[1].eq(COMMIT_ID))
532 );
533 586
534 // commit parent 't' and 'parent-commit' tag 587 #[test]
535 static COMMIT_PARENT_ID: &str = "232efb37ebc67692c9e9ff58b83c0d3d63971a0a"; 588 #[serial]
536 assert!( 589 fn description_with_commit_message() -> Result<()> {
537 most_recent_patch 590 assert_eq!(
538 .tags 591 prep()?
539 .iter() 592 .tags
540 .any(|t| t.as_vec()[0].eq("r") && t.as_vec()[1].eq(COMMIT_PARENT_ID)) 593 .iter()
541 ); 594 .find(|t| t.as_vec()[0].eq("description"))
542 assert!(most_recent_patch.tags.iter().any( 595 .unwrap()
543 |t| t.as_vec()[0].eq("parent-commit") && t.as_vec()[1].eq(COMMIT_PARENT_ID) 596 .as_vec()[1],
544 )); 597 "add t4.md"
598 );
599 Ok(())
600 }
545 601
546 // root commit 't' tag 602 #[test]
547 assert!(most_recent_patch.tags.iter().any(|t| t.as_vec()[0].eq("r") 603 #[serial]
548 && t.as_vec()[1].eq("r-9ee507fc4357d7ee16a5d8901bedcd103f23c17d"))); 604 fn commit_author() -> Result<()> {
549 } 605 assert_eq!(
606 prep()?
607 .tags
608 .iter()
609 .find(|t| t.as_vec()[0].eq("author"))
610 .unwrap()
611 .as_vec(),
612 vec!["author", "Joe Bloggs", "joe.bloggs@pm.me", "0,0"],
613 );
614 Ok(())
615 }
616
617 #[test]
618 #[serial]
619 fn commit_committer() -> Result<()> {
620 assert_eq!(
621 prep()?
622 .tags
623 .iter()
624 .find(|t| t.as_vec()[0].eq("committer"))
625 .unwrap()
626 .as_vec(),
627 vec!["committer", "Joe Bloggs", "joe.bloggs@pm.me", "0,0"],
628 );
550 Ok(()) 629 Ok(())
551 } 630 }
552 631