diff options
| -rw-r--r-- | test_utils/src/lib.rs | 25 | ||||
| -rw-r--r-- | tests/git_remote_nostr/main.rs | 8 | ||||
| -rw-r--r-- | tests/git_remote_nostr/push.rs | 48 |
3 files changed, 74 insertions, 7 deletions
diff --git a/test_utils/src/lib.rs b/test_utils/src/lib.rs index f1939ac..5feb64b 100644 --- a/test_utils/src/lib.rs +++ b/test_utils/src/lib.rs | |||
| @@ -152,6 +152,13 @@ pub fn generate_repo_ref_event() -> nostr::Event { | |||
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | pub fn generate_repo_ref_event_with_git_server(git_servers: Vec<String>) -> nostr::Event { | 154 | pub fn generate_repo_ref_event_with_git_server(git_servers: Vec<String>) -> nostr::Event { |
| 155 | generate_repo_ref_event_with_git_server_with_keys(git_servers, &TEST_KEY_1_KEYS) | ||
| 156 | } | ||
| 157 | |||
| 158 | pub fn generate_repo_ref_event_with_git_server_with_keys( | ||
| 159 | git_servers: Vec<String>, | ||
| 160 | keys: &nostr::Keys, | ||
| 161 | ) -> nostr::Event { | ||
| 155 | // taken from test git_repo | 162 | // taken from test git_repo |
| 156 | // TODO - this may not be consistant across computers as it might take the | 163 | // TODO - this may not be consistant across computers as it might take the |
| 157 | // author and committer from global git config | 164 | // author and committer from global git config |
| @@ -185,16 +192,22 @@ pub fn generate_repo_ref_event_with_git_server(git_servers: Vec<String>) -> nost | |||
| 185 | ), | 192 | ), |
| 186 | Tag::custom( | 193 | Tag::custom( |
| 187 | nostr::TagKind::Custom(std::borrow::Cow::Borrowed("maintainers")), | 194 | nostr::TagKind::Custom(std::borrow::Cow::Borrowed("maintainers")), |
| 188 | vec![ | 195 | [ |
| 189 | TEST_KEY_1_KEYS.public_key().to_string(), | 196 | vec![keys.public_key().to_string()], |
| 190 | TEST_KEY_2_KEYS.public_key().to_string(), | 197 | vec![ |
| 191 | ], | 198 | TEST_KEY_1_KEYS.public_key().to_string(), |
| 199 | TEST_KEY_2_KEYS.public_key().to_string(), | ||
| 200 | ] | ||
| 201 | .into_iter() | ||
| 202 | .filter(|key| !keys.public_key().to_string().eq(key)) | ||
| 203 | .collect(), | ||
| 204 | ] | ||
| 205 | .concat(), | ||
| 192 | ), | 206 | ), |
| 193 | ]) | 207 | ]) |
| 194 | .sign_with_keys(&TEST_KEY_1_KEYS) | 208 | .sign_with_keys(keys) |
| 195 | .unwrap() | 209 | .unwrap() |
| 196 | } | 210 | } |
| 197 | |||
| 198 | /// enough to fool event_is_patch_set_root | 211 | /// enough to fool event_is_patch_set_root |
| 199 | pub fn get_pretend_proposal_root_event() -> nostr::Event { | 212 | pub fn get_pretend_proposal_root_event() -> nostr::Event { |
| 200 | serde_json::from_str(r#"{"id":"431e58eb8e1b4e20292d1d5bbe81d5cfb042e1bc165de32eddfdd52245a4cce4","pubkey":"f53e4bcd7a9cdef049cf6467d638a1321958acd3b71eb09823fd6fadb023d768","created_at":1721404213,"kind":1617,"tags":[["a","30617:ba882566eff14f3baa976103998c452d27fe95b65a796a6a9f92628bced76fe5:9ee507fc4357d7ee16a5d8901bedcd103f23c17d-consider-it-random"],["a","30617:f53e4bcd7a9cdef049cf6467d638a1321958acd3b71eb09823fd6fadb023d768:9ee507fc4357d7ee16a5d8901bedcd103f23c17d-consider-it-random"],["r","9ee507fc4357d7ee16a5d8901bedcd103f23c17d"],["t","cover-letter"],["alt","git patch cover letter: exampletitle"],["t","root"],["e","8cb75aa4cda10a3a0f3242dc49d36159d30b3185bf63414cf6ce17f5c14a73b1","","mention"],["branch-name","feature"],["p","ba882566eff14f3baa976103998c452d27fe95b65a796a6a9f92628bced76fe5"],["p","f53e4bcd7a9cdef049cf6467d638a1321958acd3b71eb09823fd6fadb023d768"]],"content":"From fe973a840fba2a8ab37dd505c154854a69a6505c Mon Sep 17 00:00:00 2001\nSubject: [PATCH 0/2] exampletitle\n\nexampledescription","sig":"37d5b2338bf9fd9d598e6494ae88af9a8dbd52330cfe9d025ee55e35e2f3f55e931ba039d9f7fed8e6fc40206e47619a24f730f8eddc2a07ccfb3988a5005170"}"#).unwrap() | 213 | serde_json::from_str(r#"{"id":"431e58eb8e1b4e20292d1d5bbe81d5cfb042e1bc165de32eddfdd52245a4cce4","pubkey":"f53e4bcd7a9cdef049cf6467d638a1321958acd3b71eb09823fd6fadb023d768","created_at":1721404213,"kind":1617,"tags":[["a","30617:ba882566eff14f3baa976103998c452d27fe95b65a796a6a9f92628bced76fe5:9ee507fc4357d7ee16a5d8901bedcd103f23c17d-consider-it-random"],["a","30617:f53e4bcd7a9cdef049cf6467d638a1321958acd3b71eb09823fd6fadb023d768:9ee507fc4357d7ee16a5d8901bedcd103f23c17d-consider-it-random"],["r","9ee507fc4357d7ee16a5d8901bedcd103f23c17d"],["t","cover-letter"],["alt","git patch cover letter: exampletitle"],["t","root"],["e","8cb75aa4cda10a3a0f3242dc49d36159d30b3185bf63414cf6ce17f5c14a73b1","","mention"],["branch-name","feature"],["p","ba882566eff14f3baa976103998c452d27fe95b65a796a6a9f92628bced76fe5"],["p","f53e4bcd7a9cdef049cf6467d638a1321958acd3b71eb09823fd6fadb023d768"]],"content":"From fe973a840fba2a8ab37dd505c154854a69a6505c Mon Sep 17 00:00:00 2001\nSubject: [PATCH 0/2] exampletitle\n\nexampledescription","sig":"37d5b2338bf9fd9d598e6494ae88af9a8dbd52330cfe9d025ee55e35e2f3f55e931ba039d9f7fed8e6fc40206e47619a24f730f8eddc2a07ccfb3988a5005170"}"#).unwrap() |
diff --git a/tests/git_remote_nostr/main.rs b/tests/git_remote_nostr/main.rs index 6b51825..fc541f8 100644 --- a/tests/git_remote_nostr/main.rs +++ b/tests/git_remote_nostr/main.rs | |||
| @@ -117,6 +117,10 @@ async fn generate_repo_with_state_event() -> Result<(nostr::Event, GitTestRepo)> | |||
| 117 | generate_repo_ref_event_with_git_server(vec![ | 117 | generate_repo_ref_event_with_git_server(vec![ |
| 118 | source_git_repo.dir.to_str().unwrap().to_string(), | 118 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 119 | ]), | 119 | ]), |
| 120 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 121 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 122 | &TEST_KEY_2_KEYS, | ||
| 123 | ), | ||
| 120 | ]; | 124 | ]; |
| 121 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 125 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 122 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 126 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -190,6 +194,10 @@ async fn prep_source_repo_and_events_including_proposals() | |||
| 190 | generate_test_key_1_metadata_event("fred"), | 194 | generate_test_key_1_metadata_event("fred"), |
| 191 | generate_test_key_1_relay_list_event(), | 195 | generate_test_key_1_relay_list_event(), |
| 192 | generate_repo_ref_event_with_git_server(vec![source_path.to_string()]), | 196 | generate_repo_ref_event_with_git_server(vec![source_path.to_string()]), |
| 197 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 198 | vec![source_path.to_string()], | ||
| 199 | &TEST_KEY_2_KEYS, | ||
| 200 | ), | ||
| 193 | state_event, | 201 | state_event, |
| 194 | ]; | 202 | ]; |
| 195 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 203 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
diff --git a/tests/git_remote_nostr/push.rs b/tests/git_remote_nostr/push.rs index eab2422..f46b0ea 100644 --- a/tests/git_remote_nostr/push.rs +++ b/tests/git_remote_nostr/push.rs | |||
| @@ -32,6 +32,10 @@ mod two_branches_in_batch_one_added_one_updated { | |||
| 32 | generate_repo_ref_event_with_git_server(vec![ | 32 | generate_repo_ref_event_with_git_server(vec![ |
| 33 | source_git_repo.dir.to_str().unwrap().to_string(), | 33 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 34 | ]), | 34 | ]), |
| 35 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 36 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 37 | &TEST_KEY_2_KEYS, | ||
| 38 | ), | ||
| 35 | ]; | 39 | ]; |
| 36 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 40 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 37 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 41 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -107,6 +111,10 @@ mod two_branches_in_batch_one_added_one_updated { | |||
| 107 | generate_repo_ref_event_with_git_server(vec![ | 111 | generate_repo_ref_event_with_git_server(vec![ |
| 108 | source_git_repo.dir.to_str().unwrap().to_string(), | 112 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 109 | ]), | 113 | ]), |
| 114 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 115 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 116 | &TEST_KEY_2_KEYS, | ||
| 117 | ), | ||
| 110 | ]; | 118 | ]; |
| 111 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 119 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 112 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 120 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -193,6 +201,10 @@ mod two_branches_in_batch_one_added_one_updated { | |||
| 193 | generate_repo_ref_event_with_git_server(vec![ | 201 | generate_repo_ref_event_with_git_server(vec![ |
| 194 | source_git_repo.dir.to_str().unwrap().to_string(), | 202 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 195 | ]), | 203 | ]), |
| 204 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 205 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 206 | &TEST_KEY_2_KEYS, | ||
| 207 | ), | ||
| 196 | ]; | 208 | ]; |
| 197 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 209 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 198 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 210 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -261,6 +273,10 @@ mod two_branches_in_batch_one_added_one_updated { | |||
| 261 | generate_repo_ref_event_with_git_server(vec![ | 273 | generate_repo_ref_event_with_git_server(vec![ |
| 262 | source_git_repo.dir.to_str().unwrap().to_string(), | 274 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 263 | ]), | 275 | ]), |
| 276 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 277 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 278 | &TEST_KEY_2_KEYS, | ||
| 279 | ), | ||
| 264 | ]; | 280 | ]; |
| 265 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 281 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 266 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 282 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -345,6 +361,10 @@ mod two_branches_in_batch_one_added_one_updated { | |||
| 345 | generate_repo_ref_event_with_git_server(vec![ | 361 | generate_repo_ref_event_with_git_server(vec![ |
| 346 | source_git_repo.dir.to_str().unwrap().to_string(), | 362 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 347 | ]), | 363 | ]), |
| 364 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 365 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 366 | &TEST_KEY_2_KEYS, | ||
| 367 | ), | ||
| 348 | state_event.clone(), | 368 | state_event.clone(), |
| 349 | ]; | 369 | ]; |
| 350 | 370 | ||
| @@ -463,6 +483,10 @@ mod delete_one_branch { | |||
| 463 | generate_repo_ref_event_with_git_server(vec![ | 483 | generate_repo_ref_event_with_git_server(vec![ |
| 464 | source_git_repo.dir.to_str().unwrap().to_string(), | 484 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 465 | ]), | 485 | ]), |
| 486 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 487 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 488 | &TEST_KEY_2_KEYS, | ||
| 489 | ), | ||
| 466 | ]; | 490 | ]; |
| 467 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 491 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 468 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 492 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -538,6 +562,10 @@ mod delete_one_branch { | |||
| 538 | generate_repo_ref_event_with_git_server(vec![ | 562 | generate_repo_ref_event_with_git_server(vec![ |
| 539 | source_git_repo.dir.to_str().unwrap().to_string(), | 563 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 540 | ]), | 564 | ]), |
| 565 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 566 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 567 | &TEST_KEY_2_KEYS, | ||
| 568 | ), | ||
| 541 | ]; | 569 | ]; |
| 542 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 570 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 543 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 571 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -612,6 +640,10 @@ mod delete_one_branch { | |||
| 612 | generate_repo_ref_event_with_git_server(vec![ | 640 | generate_repo_ref_event_with_git_server(vec![ |
| 613 | source_git_repo.dir.to_str().unwrap().to_string(), | 641 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 614 | ]), | 642 | ]), |
| 643 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 644 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 645 | &TEST_KEY_2_KEYS, | ||
| 646 | ), | ||
| 615 | ]; | 647 | ]; |
| 616 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | 648 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) |
| 617 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | 649 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( |
| @@ -668,6 +700,10 @@ mod delete_one_branch { | |||
| 668 | generate_repo_ref_event_with_git_server(vec![ | 700 | generate_repo_ref_event_with_git_server(vec![ |
| 669 | source_git_repo.dir.to_str().unwrap().to_string(), | 701 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 670 | ]), | 702 | ]), |
| 703 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 704 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 705 | &TEST_KEY_2_KEYS, | ||
| 706 | ), | ||
| 671 | state_event.clone(), | 707 | state_event.clone(), |
| 672 | ]; | 708 | ]; |
| 673 | 709 | ||
| @@ -755,6 +791,10 @@ mod delete_one_branch { | |||
| 755 | generate_repo_ref_event_with_git_server(vec![ | 791 | generate_repo_ref_event_with_git_server(vec![ |
| 756 | source_git_repo.dir.to_str().unwrap().to_string(), | 792 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 757 | ]), | 793 | ]), |
| 794 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 795 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 796 | &TEST_KEY_2_KEYS, | ||
| 797 | ), | ||
| 758 | state_event.clone(), | 798 | state_event.clone(), |
| 759 | ]; | 799 | ]; |
| 760 | 800 | ||
| @@ -841,6 +881,10 @@ async fn pushes_to_all_git_servers_listed_and_ok_printed() -> Result<()> { | |||
| 841 | source_git_repo.dir.to_str().unwrap().to_string(), | 881 | source_git_repo.dir.to_str().unwrap().to_string(), |
| 842 | second_source_git_repo.dir.to_str().unwrap().to_string(), | 882 | second_source_git_repo.dir.to_str().unwrap().to_string(), |
| 843 | ]), | 883 | ]), |
| 884 | generate_repo_ref_event_with_git_server_with_keys( | ||
| 885 | vec![source_git_repo.dir.to_str().unwrap().to_string()], | ||
| 886 | &TEST_KEY_2_KEYS, | ||
| 887 | ), | ||
| 844 | state_event.clone(), | 888 | state_event.clone(), |
| 845 | ]; | 889 | ]; |
| 846 | 890 | ||
| @@ -1835,8 +1879,10 @@ async fn push_new_pr_branch_creates_proposal() -> Result<()> { | |||
| 1835 | } | 1879 | } |
| 1836 | 1880 | ||
| 1837 | mod push_from_another_maintainer { | 1881 | mod push_from_another_maintainer { |
| 1882 | |||
| 1838 | // TODO that has issued announcement | 1883 | // TODO that has issued announcement |
| 1839 | // - that is listed by trusted maintainer - succeeds | 1884 | // - that is listed by trusted maintainer - succeeds (covered by above |
| 1885 | // tests) | ||
| 1840 | // - that isn't listed by trusted maintainer - fails | 1886 | // - that isn't listed by trusted maintainer - fails |
| 1841 | // TODO that hasn't yet issued announcement | 1887 | // TODO that hasn't yet issued announcement |
| 1842 | // - that is listed by trusted maintainer - fails | 1888 | // - that is listed by trusted maintainer - fails |