upleb.uk

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

summaryrefslogtreecommitdiff
path: root/tests/pull.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2024-03-28 12:35:37 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2024-03-28 12:35:37 +0000
commit4b06b2bd70d37656d727c8fffc0656c1aa3c7b97 (patch)
tree1d885fdef21a7530c1a91f848788a665d6fc9948 /tests/pull.rs
parent91a68de459b7d22a8dfb8a324e43740fca3e0a35 (diff)
parent11dc9fa2d8b82594d3803f12d2c5a49e57026cfb (diff)
Merge upgrade rust-nostr v0.29
refactor to address breaking changes in rust-nostr fix a number of in dependancy which have been upstreamed
Diffstat (limited to 'tests/pull.rs')
-rw-r--r--tests/pull.rs162
1 files changed, 86 insertions, 76 deletions
diff --git a/tests/pull.rs b/tests/pull.rs
index 50dddbf..bf132e7 100644
--- a/tests/pull.rs
+++ b/tests/pull.rs
@@ -712,7 +712,8 @@ mod when_branch_is_checked_out {
712 mod when_latest_event_rebases_branch { 712 mod when_latest_event_rebases_branch {
713 use std::time::Duration; 713 use std::time::Duration;
714 714
715 use nostr_sdk::blocking::Client; 715 use nostr_sdk::Client;
716 use tokio::{runtime::Handle, task::JoinHandle};
716 717
717 use super::*; 718 use super::*;
718 719
@@ -734,23 +735,26 @@ mod when_branch_is_checked_out {
734 r55.events.push(generate_test_key_1_metadata_event("fred")); 735 r55.events.push(generate_test_key_1_metadata_event("fred"));
735 r55.events.push(generate_test_key_1_relay_list_event()); 736 r55.events.push(generate_test_key_1_relay_list_event());
736 737
737 let cli_tester_handle = 738 let cli_tester_handle: JoinHandle<Result<(GitTestRepo, GitTestRepo)>> =
738 std::thread::spawn(move || -> Result<(GitTestRepo, GitTestRepo)> { 739 tokio::task::spawn_blocking(move || {
739 // create 3 proposals 740 // create 3 proposals
740 let _ = cli_tester_create_proposals()?; 741 let _ = cli_tester_create_proposals()?;
741 // get proposal id of first 742 // get proposal id of first
742 let client = Client::new(&nostr::Keys::generate()); 743 let client = Client::default();
743 client.add_relay("ws://localhost:8055")?; 744 Handle::current().block_on(client.add_relay("ws://localhost:8055"))?;
744 client.connect_relay("ws://localhost:8055")?; 745 Handle::current().block_on(client.connect_relay("ws://localhost:8055"))?;
745 let proposals = client.get_events_of( 746 let proposals = Handle::current().block_on(client.get_events_of(
746 vec![ 747 vec![
747 nostr::Filter::default() 748 nostr::Filter::default()
748 .kind(nostr::Kind::Custom(PATCH_KIND)) 749 .kind(nostr::Kind::Custom(PATCH_KIND))
749 .custom_tag(nostr::Alphabet::T, vec!["root"]), 750 .custom_tag(
750 ], 751 nostr::SingleLetterTag::lowercase(nostr::Alphabet::T),
752 vec!["root"],
753 ),
754 ],
751 Some(Duration::from_millis(500)), 755 Some(Duration::from_millis(500)),
752 )?; 756 ))?;
753 client.disconnect()?; 757 Handle::current().block_on(client.disconnect())?;
754 758
755 let proposal_1_id = proposals 759 let proposal_1_id = proposals
756 .iter() 760 .iter()
@@ -805,7 +809,7 @@ mod when_branch_is_checked_out {
805 r55.listen_until_close(), 809 r55.listen_until_close(),
806 r56.listen_until_close(), 810 r56.listen_until_close(),
807 ); 811 );
808 let res = cli_tester_handle.join().unwrap()?; 812 let res = cli_tester_handle.await??;
809 813
810 Ok(res) 814 Ok(res)
811 } 815 }
@@ -832,69 +836,75 @@ mod when_branch_is_checked_out {
832 r55.events.push(generate_test_key_1_metadata_event("fred")); 836 r55.events.push(generate_test_key_1_metadata_event("fred"));
833 r55.events.push(generate_test_key_1_relay_list_event()); 837 r55.events.push(generate_test_key_1_relay_list_event());
834 838
835 let cli_tester_handle = std::thread::spawn(move || -> Result<()> { 839 let cli_tester_handle: JoinHandle<Result<()>> = tokio::task::spawn_blocking(
836 // create 3 proposals 840 move || {
837 let _ = cli_tester_create_proposals()?; 841 // create 3 proposals
838 // get proposal id of first 842 let _ = cli_tester_create_proposals()?;
839 let client = Client::new(&nostr::Keys::generate()); 843 // get proposal id of first
840 client.add_relay("ws://localhost:8055")?; 844 let client = Client::default();
841 client.connect_relay("ws://localhost:8055")?; 845 Handle::current().block_on(client.add_relay("ws://localhost:8055"))?;
842 let proposals = client.get_events_of( 846 Handle::current().block_on(client.connect_relay("ws://localhost:8055"))?;
843 vec![ 847 let proposals = Handle::current().block_on(client.get_events_of(
844 nostr::Filter::default() 848 vec![
845 .kind(nostr::Kind::Custom(PATCH_KIND)) 849 nostr::Filter::default()
846 .custom_tag(nostr::Alphabet::T, vec!["root"]), 850 .kind(nostr::Kind::Custom(PATCH_KIND))
847 ], 851 .custom_tag(
848 Some(Duration::from_millis(500)), 852 nostr::SingleLetterTag::lowercase(nostr::Alphabet::T),
849 )?; 853 vec!["root"],
850 client.disconnect()?; 854 ),
851 855 ],
852 let proposal_1_id = proposals 856 Some(Duration::from_millis(500)),
853 .iter() 857 ))?;
854 .find(|e| { 858 Handle::current().block_on(client.disconnect())?;
855 e.tags 859
856 .iter() 860 let proposal_1_id = proposals
857 .any(|t| t.as_vec()[1].eq(&FEATURE_BRANCH_NAME_1)) 861 .iter()
858 }) 862 .find(|e| {
859 .unwrap() 863 e.tags
860 .id; 864 .iter()
861 // recreate proposal 1 on top of a another commit (like a rebase on top 865 .any(|t| t.as_vec()[1].eq(&FEATURE_BRANCH_NAME_1))
862 // of one extra commit) 866 })
863 let second_originating_repo = GitTestRepo::default(); 867 .unwrap()
864 second_originating_repo.populate()?; 868 .id;
865 std::fs::write( 869 // recreate proposal 1 on top of a another commit (like a rebase on top
866 second_originating_repo.dir.join("amazing.md"), 870 // of one extra commit)
867 "some content", 871 let second_originating_repo = GitTestRepo::default();
868 )?; 872 second_originating_repo.populate()?;
869 second_originating_repo.stage_and_commit("commit for rebasing on top of")?; 873 std::fs::write(
870 cli_tester_create_proposal( 874 second_originating_repo.dir.join("amazing.md"),
871 &second_originating_repo, 875 "some content",
872 FEATURE_BRANCH_NAME_1, 876 )?;
873 "a", 877 second_originating_repo
874 Some((PROPOSAL_TITLE_1, "proposal a description")), 878 .stage_and_commit("commit for rebasing on top of")?;
875 Some(proposal_1_id.to_string()), 879 cli_tester_create_proposal(
876 )?; 880 &second_originating_repo,
877 881 FEATURE_BRANCH_NAME_1,
878 // pretend we have downloaded the origianl version of the first proposal 882 "a",
879 let test_repo = GitTestRepo::default(); 883 Some((PROPOSAL_TITLE_1, "proposal a description")),
880 test_repo.populate()?; 884 Some(proposal_1_id.to_string()),
881 create_and_populate_branch(&test_repo, FEATURE_BRANCH_NAME_1, "a", false)?; 885 )?;
882 // pretend we have pulled the updated main branch 886
883 test_repo.checkout("main")?; 887 // pretend we have downloaded the origianl version of the first proposal
884 std::fs::write(test_repo.dir.join("amazing.md"), "some content")?; 888 let test_repo = GitTestRepo::default();
885 test_repo.stage_and_commit("commit for rebasing on top of")?; 889 test_repo.populate()?;
886 test_repo.checkout(FEATURE_BRANCH_NAME_1)?; 890 create_and_populate_branch(&test_repo, FEATURE_BRANCH_NAME_1, "a", false)?;
891 // pretend we have pulled the updated main branch
892 test_repo.checkout("main")?;
893 std::fs::write(test_repo.dir.join("amazing.md"), "some content")?;
894 test_repo.stage_and_commit("commit for rebasing on top of")?;
895 test_repo.checkout(FEATURE_BRANCH_NAME_1)?;
887 896
888 let mut p = CliTester::new_from_dir(&test_repo.dir, ["pull"]); 897 let mut p = CliTester::new_from_dir(&test_repo.dir, ["pull"]);
889 p.expect("finding proposal root event...\r\n")?; 898 p.expect("finding proposal root event...\r\n")?;
890 p.expect("found proposal root event. finding commits...\r\n")?; 899 p.expect("found proposal root event. finding commits...\r\n")?;
891 p.expect_end_with("pulled new version of proposal (2 ahead 0 behind 'main'), replacing old version (2 ahead 1 behind 'main')\r\n")?; 900 p.expect_end_with("pulled new version of proposal (2 ahead 0 behind 'main'), replacing old version (2 ahead 1 behind 'main')\r\n")?;
892 901
893 for p in [51, 52, 53, 55, 56] { 902 for p in [51, 52, 53, 55, 56] {
894 relay::shutdown_relay(8000 + p)?; 903 relay::shutdown_relay(8000 + p)?;
895 } 904 }
896 Ok(()) 905 Ok(())
897 }); 906 },
907 );
898 908
899 // launch relay 909 // launch relay
900 let _ = join!( 910 let _ = join!(
@@ -904,7 +914,7 @@ mod when_branch_is_checked_out {
904 r55.listen_until_close(), 914 r55.listen_until_close(),
905 r56.listen_until_close(), 915 r56.listen_until_close(),
906 ); 916 );
907 cli_tester_handle.join().unwrap()?; 917 cli_tester_handle.await??;
908 println!("{:?}", r55.events); 918 println!("{:?}", r55.events);
909 Ok(()) 919 Ok(())
910 } 920 }