diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2023-12-01 00:00:00 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2023-12-01 00:00:00 +0000 |
| commit | 06be0bc44011411b78217459f505ed12281b32c4 (patch) | |
| tree | 36cab80e309d33f20fedcc97258700a379aa348e /tests/prs_create.rs | |
| parent | 492cc67887855cecb3fb501c4b61af50bf645b73 (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.rs | 163 |
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 | ||