diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2024-08-28 14:20:34 +0100 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2024-08-28 16:42:53 +0100 |
| commit | a5216602749bff55c2773acce098c91942cd3920 (patch) | |
| tree | f1961c73d0586cab4de8fd54aafd9ba8171f3adb | |
| parent | 2045aa5d928306f2a03cc924eac9c453c399b9b8 (diff) | |
chore: bump rust-nostr to v0.34.0
bump all rust-nostr packages
I'm not sure I'm completely happy with allowing mutable_key_type
but it is just run inside tests
it appears that Event didn't have the Copy trait in v0.33.0 so I'm
not sure why this warning suddenly appeared
the timeout of client.get_events_of needed to be doubled which could
indicate that an ineffiency has been introduced in v0.34.0
the primary motivation for upgrading now was to get this fix:
nostr:nevent1qqsffl2ld678pjj77rh9k2g4edljmxdu6ew4lvgnglxv7jhu3ru8vvcpp4mhxue69uhkummn9ekx7mqzyzsq3hh327t0h2dq6matqn5064cgj2zanl2stkj6s0lg4t2h5dty6rm2ucm
as I suspect it is also effecting other repositories
eg nostr-profile-manager
| -rw-r--r-- | Cargo.lock | 98 | ||||
| -rw-r--r-- | Cargo.toml | 10 | ||||
| -rw-r--r-- | src/client.rs | 4 | ||||
| -rw-r--r-- | src/git_remote_helper.rs | 3 | ||||
| -rw-r--r-- | src/sub_commands/list.rs | 7 | ||||
| -rw-r--r-- | src/sub_commands/send.rs | 18 | ||||
| -rw-r--r-- | test_utils/Cargo.toml | 8 | ||||
| -rw-r--r-- | test_utils/src/lib.rs | 6 | ||||
| -rw-r--r-- | tests/git_remote_helper.rs | 26 | ||||
| -rw-r--r-- | tests/send.rs | 106 |
10 files changed, 156 insertions, 130 deletions
| @@ -330,31 +330,22 @@ dependencies = [ | |||
| 330 | 330 | ||
| 331 | [[package]] | 331 | [[package]] |
| 332 | name = "async-wsocket" | 332 | name = "async-wsocket" |
| 333 | version = "0.5.1" | 333 | version = "0.7.1" |
| 334 | source = "registry+https://github.com/rust-lang/crates.io-index" | 334 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 335 | checksum = "79c6465dab65a363da7353383af13a22fb05ce173d9b460c38322590e9245400" | 335 | checksum = "1eee6fcc818b89848df37050215603de0e2e072734e4730c03060feb2d0abebb" |
| 336 | dependencies = [ | 336 | dependencies = [ |
| 337 | "async-utility", | 337 | "async-utility", |
| 338 | "futures", | ||
| 338 | "futures-util", | 339 | "futures-util", |
| 340 | "js-sys", | ||
| 339 | "thiserror", | 341 | "thiserror", |
| 340 | "tokio", | 342 | "tokio", |
| 341 | "tokio-rustls 0.26.0", | 343 | "tokio-rustls 0.26.0", |
| 342 | "tokio-socks", | 344 | "tokio-socks", |
| 343 | "tokio-tungstenite 0.23.0", | 345 | "tokio-tungstenite 0.23.0", |
| 344 | "url", | 346 | "url", |
| 345 | "wasm-ws", | 347 | "wasm-bindgen", |
| 346 | "webpki-roots", | 348 | "web-sys", |
| 347 | ] | ||
| 348 | |||
| 349 | [[package]] | ||
| 350 | name = "async_io_stream" | ||
| 351 | version = "0.3.3" | ||
| 352 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 353 | checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" | ||
| 354 | dependencies = [ | ||
| 355 | "futures", | ||
| 356 | "pharos", | ||
| 357 | "rustc_version", | ||
| 358 | ] | 349 | ] |
| 359 | 350 | ||
| 360 | [[package]] | 351 | [[package]] |
| @@ -1843,9 +1834,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" | |||
| 1843 | 1834 | ||
| 1844 | [[package]] | 1835 | [[package]] |
| 1845 | name = "nostr" | 1836 | name = "nostr" |
| 1846 | version = "0.33.0" | 1837 | version = "0.34.0" |
| 1847 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1838 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1848 | checksum = "f08db214560a34bf7c4c1fea09a8461b9412bae58ba06e99ce3177d89fa1e0a6" | 1839 | checksum = "5897e4142fcc33c4f1d58ad17f665e87dcba70de7e370c0bda1aa0fb73212c2a" |
| 1849 | dependencies = [ | 1840 | dependencies = [ |
| 1850 | "aes 0.8.4", | 1841 | "aes 0.8.4", |
| 1851 | "base64 0.21.7", | 1842 | "base64 0.21.7", |
| @@ -1873,9 +1864,9 @@ dependencies = [ | |||
| 1873 | 1864 | ||
| 1874 | [[package]] | 1865 | [[package]] |
| 1875 | name = "nostr-database" | 1866 | name = "nostr-database" |
| 1876 | version = "0.33.1" | 1867 | version = "0.34.0" |
| 1877 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1868 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1878 | checksum = "50eebf5020d70891e3c229128de5fc73af632b651d02742383b314d3d0c7e953" | 1869 | checksum = "1926ef55392f3eea1bbe4a1358b64bbf12dd6eb554f40f483941a102c6263fc6" |
| 1879 | dependencies = [ | 1870 | dependencies = [ |
| 1880 | "async-trait", | 1871 | "async-trait", |
| 1881 | "flatbuffers", | 1872 | "flatbuffers", |
| @@ -1888,9 +1879,9 @@ dependencies = [ | |||
| 1888 | 1879 | ||
| 1889 | [[package]] | 1880 | [[package]] |
| 1890 | name = "nostr-relay-pool" | 1881 | name = "nostr-relay-pool" |
| 1891 | version = "0.33.0" | 1882 | version = "0.34.0" |
| 1892 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1883 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1893 | checksum = "afa5502a3df456790ca16d90cc688a677117d57ab56b079dcfa091390ac9f202" | 1884 | checksum = "c6480cf60564957a2a64bd050d047ee0717e08dced7a389e22ef4e9fc104edd2" |
| 1894 | dependencies = [ | 1885 | dependencies = [ |
| 1895 | "async-utility", | 1886 | "async-utility", |
| 1896 | "async-wsocket", | 1887 | "async-wsocket", |
| @@ -1899,14 +1890,15 @@ dependencies = [ | |||
| 1899 | "nostr-database", | 1890 | "nostr-database", |
| 1900 | "thiserror", | 1891 | "thiserror", |
| 1901 | "tokio", | 1892 | "tokio", |
| 1893 | "tokio-stream", | ||
| 1902 | "tracing", | 1894 | "tracing", |
| 1903 | ] | 1895 | ] |
| 1904 | 1896 | ||
| 1905 | [[package]] | 1897 | [[package]] |
| 1906 | name = "nostr-sdk" | 1898 | name = "nostr-sdk" |
| 1907 | version = "0.33.0" | 1899 | version = "0.34.0" |
| 1908 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1900 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1909 | checksum = "b427dceefbbb49a9dd98abb8c4e40d25fdd467e99821aaad88615252bdb915bd" | 1901 | checksum = "ca0c0c5f8ddbdfc064ea71883191ec53de6ed52b5dca10ab07f0810b99e91acc" |
| 1910 | dependencies = [ | 1902 | dependencies = [ |
| 1911 | "async-utility", | 1903 | "async-utility", |
| 1912 | "atomic-destructor", | 1904 | "atomic-destructor", |
| @@ -1924,9 +1916,9 @@ dependencies = [ | |||
| 1924 | 1916 | ||
| 1925 | [[package]] | 1917 | [[package]] |
| 1926 | name = "nostr-signer" | 1918 | name = "nostr-signer" |
| 1927 | version = "0.33.0" | 1919 | version = "0.34.0" |
| 1928 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1920 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1929 | checksum = "665268b316f41cd8fa791be54b6c7935c5a239461708c380a699d6677be9af38" | 1921 | checksum = "5c30294a7be7d9d5ac777954812f5c7b4ae2a1e583a62e33537f87d98ab23729" |
| 1930 | dependencies = [ | 1922 | dependencies = [ |
| 1931 | "async-utility", | 1923 | "async-utility", |
| 1932 | "nostr", | 1924 | "nostr", |
| @@ -1938,9 +1930,9 @@ dependencies = [ | |||
| 1938 | 1930 | ||
| 1939 | [[package]] | 1931 | [[package]] |
| 1940 | name = "nostr-sqlite" | 1932 | name = "nostr-sqlite" |
| 1941 | version = "0.33.0" | 1933 | version = "0.34.0" |
| 1942 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1934 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1943 | checksum = "31f643ba919864f3a9bb004244c0d5c958646b07fe760823fdc33aae1c8fc0fc" | 1935 | checksum = "0b634d2a908feccd7b6b2e8d2cea47bc4061b350b7a120cd6c6f2520e4e1fc1a" |
| 1944 | dependencies = [ | 1936 | dependencies = [ |
| 1945 | "async-trait", | 1937 | "async-trait", |
| 1946 | "nostr", | 1938 | "nostr", |
| @@ -1953,9 +1945,9 @@ dependencies = [ | |||
| 1953 | 1945 | ||
| 1954 | [[package]] | 1946 | [[package]] |
| 1955 | name = "nostr-zapper" | 1947 | name = "nostr-zapper" |
| 1956 | version = "0.33.0" | 1948 | version = "0.34.0" |
| 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1958 | checksum = "69922e74f8eab1f9d287008c0c06acdec87277a2d8f44bd9d38e003422aea0ab" | 1950 | checksum = "dcf3ba30e807145e9cb924faf8fb0719e460f613088e99c753b67c2a9929c5b7" |
| 1959 | dependencies = [ | 1951 | dependencies = [ |
| 1960 | "async-trait", | 1952 | "async-trait", |
| 1961 | "nostr", | 1953 | "nostr", |
| @@ -2055,9 +2047,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" | |||
| 2055 | 2047 | ||
| 2056 | [[package]] | 2048 | [[package]] |
| 2057 | name = "nwc" | 2049 | name = "nwc" |
| 2058 | version = "0.33.0" | 2050 | version = "0.34.1" |
| 2059 | source = "registry+https://github.com/rust-lang/crates.io-index" | 2051 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 2060 | checksum = "bb2e04b3edb5e9572e95b62842430625f1718e8a4a3596a30aeb04e6734764ea" | 2052 | checksum = "9a16ac06bc273fcd4ead47c0c5a58b6cc7db2247fc7a64dd9bc11cf18e3efeb4" |
| 2061 | dependencies = [ | 2053 | dependencies = [ |
| 2062 | "async-utility", | 2054 | "async-utility", |
| 2063 | "nostr", | 2055 | "nostr", |
| @@ -2188,16 +2180,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
| 2188 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" | 2180 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" |
| 2189 | 2181 | ||
| 2190 | [[package]] | 2182 | [[package]] |
| 2191 | name = "pharos" | ||
| 2192 | version = "0.5.3" | ||
| 2193 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 2194 | checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" | ||
| 2195 | dependencies = [ | ||
| 2196 | "futures", | ||
| 2197 | "rustc_version", | ||
| 2198 | ] | ||
| 2199 | |||
| 2200 | [[package]] | ||
| 2201 | name = "pin-project" | 2183 | name = "pin-project" |
| 2202 | version = "1.1.5" | 2184 | version = "1.1.5" |
| 2203 | source = "registry+https://github.com/rust-lang/crates.io-index" | 2185 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| @@ -2805,12 +2787,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
| 2805 | checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" | 2787 | checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" |
| 2806 | 2788 | ||
| 2807 | [[package]] | 2789 | [[package]] |
| 2808 | name = "send_wrapper" | ||
| 2809 | version = "0.6.0" | ||
| 2810 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 2811 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" | ||
| 2812 | |||
| 2813 | [[package]] | ||
| 2814 | name = "serde" | 2790 | name = "serde" |
| 2815 | version = "1.0.197" | 2791 | version = "1.0.197" |
| 2816 | source = "registry+https://github.com/rust-lang/crates.io-index" | 2792 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| @@ -3201,6 +3177,17 @@ dependencies = [ | |||
| 3201 | ] | 3177 | ] |
| 3202 | 3178 | ||
| 3203 | [[package]] | 3179 | [[package]] |
| 3180 | name = "tokio-stream" | ||
| 3181 | version = "0.1.15" | ||
| 3182 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 3183 | checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" | ||
| 3184 | dependencies = [ | ||
| 3185 | "futures-core", | ||
| 3186 | "pin-project-lite", | ||
| 3187 | "tokio", | ||
| 3188 | ] | ||
| 3189 | |||
| 3190 | [[package]] | ||
| 3204 | name = "tokio-tungstenite" | 3191 | name = "tokio-tungstenite" |
| 3205 | version = "0.20.1" | 3192 | version = "0.20.1" |
| 3206 | source = "registry+https://github.com/rust-lang/crates.io-index" | 3193 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| @@ -3575,23 +3562,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
| 3575 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" | 3562 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" |
| 3576 | 3563 | ||
| 3577 | [[package]] | 3564 | [[package]] |
| 3578 | name = "wasm-ws" | ||
| 3579 | version = "0.2.1" | ||
| 3580 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 3581 | checksum = "688c5806d1b06b4f3d90d015e23364dc5d3af412ee64abba6dde8fdc01637e33" | ||
| 3582 | dependencies = [ | ||
| 3583 | "async_io_stream", | ||
| 3584 | "futures", | ||
| 3585 | "js-sys", | ||
| 3586 | "pharos", | ||
| 3587 | "send_wrapper", | ||
| 3588 | "thiserror", | ||
| 3589 | "wasm-bindgen", | ||
| 3590 | "wasm-bindgen-futures", | ||
| 3591 | "web-sys", | ||
| 3592 | ] | ||
| 3593 | |||
| 3594 | [[package]] | ||
| 3595 | name = "web-sys" | 3565 | name = "web-sys" |
| 3596 | version = "0.3.69" | 3566 | version = "0.3.69" |
| 3597 | source = "registry+https://github.com/rust-lang/crates.io-index" | 3567 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| @@ -24,11 +24,11 @@ futures = "0.3.28" | |||
| 24 | git2 = "0.18.1" | 24 | git2 = "0.18.1" |
| 25 | indicatif = "0.17.7" | 25 | indicatif = "0.17.7" |
| 26 | keyring = "2.0.5" | 26 | keyring = "2.0.5" |
| 27 | nostr = "0.33.0" | 27 | nostr = "0.34.0" |
| 28 | nostr-database = "0.33.1" | 28 | nostr-database = "0.34.0" |
| 29 | nostr-sdk = "0.33.0" | 29 | nostr-sdk = "0.34.0" |
| 30 | nostr-signer = "0.33.0" | 30 | nostr-signer = "0.34.0" |
| 31 | nostr-sqlite = "0.33.0" | 31 | nostr-sqlite = "0.34.0" |
| 32 | passwords = "3.1.13" | 32 | passwords = "3.1.13" |
| 33 | scrypt = "0.11.0" | 33 | scrypt = "0.11.0" |
| 34 | serde = { version = "1.0.181", features = ["derive"] } | 34 | serde = { version = "1.0.181", features = ["derive"] } |
diff --git a/src/client.rs b/src/client.rs index db41f99..abde217 100644 --- a/src/client.rs +++ b/src/client.rs | |||
| @@ -1182,12 +1182,12 @@ async fn process_fetched_events( | |||
| 1182 | } else if [Kind::RelayList, Kind::Metadata].contains(&event.kind()) { | 1182 | } else if [Kind::RelayList, Kind::Metadata].contains(&event.kind()) { |
| 1183 | if request | 1183 | if request |
| 1184 | .missing_contributor_profiles | 1184 | .missing_contributor_profiles |
| 1185 | .contains(event.author_ref()) | 1185 | .contains(&event.author()) |
| 1186 | { | 1186 | { |
| 1187 | report.contributor_profiles.insert(event.author()); | 1187 | report.contributor_profiles.insert(event.author()); |
| 1188 | } else if let Some((_, (metadata_timestamp, relay_list_timestamp))) = request | 1188 | } else if let Some((_, (metadata_timestamp, relay_list_timestamp))) = request |
| 1189 | .profiles_to_fetch_from_user_relays | 1189 | .profiles_to_fetch_from_user_relays |
| 1190 | .get_key_value(event.author_ref()) | 1190 | .get_key_value(&event.author()) |
| 1191 | { | 1191 | { |
| 1192 | if (Kind::Metadata.eq(&event.kind()) | 1192 | if (Kind::Metadata.eq(&event.kind()) |
| 1193 | && event.created_at().gt(metadata_timestamp)) | 1193 | && event.created_at().gt(metadata_timestamp)) |
diff --git a/src/git_remote_helper.rs b/src/git_remote_helper.rs index 2244383..4d34850 100644 --- a/src/git_remote_helper.rs +++ b/src/git_remote_helper.rs | |||
| @@ -366,7 +366,8 @@ async fn get_open_proposals( | |||
| 366 | .iter() | 366 | .iter() |
| 367 | .filter(|e| { | 367 | .filter(|e| { |
| 368 | status_kinds().contains(&e.kind()) | 368 | status_kinds().contains(&e.kind()) |
| 369 | && e.iter_tags() | 369 | && e.tags() |
| 370 | .iter() | ||
| 370 | .any(|t| t.as_vec()[1].eq(&proposal.id.to_string())) | 371 | .any(|t| t.as_vec()[1].eq(&proposal.id.to_string())) |
| 371 | }) | 372 | }) |
| 372 | .collect::<Vec<&nostr::Event>>() | 373 | .collect::<Vec<&nostr::Event>>() |
diff --git a/src/sub_commands/list.rs b/src/sub_commands/list.rs index 73ef107..ac1f4ab 100644 --- a/src/sub_commands/list.rs +++ b/src/sub_commands/list.rs | |||
| @@ -78,7 +78,8 @@ pub async fn launch() -> Result<()> { | |||
| 78 | .iter() | 78 | .iter() |
| 79 | .filter(|e| { | 79 | .filter(|e| { |
| 80 | status_kinds().contains(&e.kind()) | 80 | status_kinds().contains(&e.kind()) |
| 81 | && e.iter_tags() | 81 | && e.tags() |
| 82 | .iter() | ||
| 82 | .any(|t| t.as_vec()[1].eq(&proposal.id.to_string())) | 83 | .any(|t| t.as_vec()[1].eq(&proposal.id.to_string())) |
| 83 | }) | 84 | }) |
| 84 | .collect::<Vec<&nostr::Event>>() | 85 | .collect::<Vec<&nostr::Event>>() |
| @@ -873,7 +874,7 @@ pub async fn get_all_proposal_patch_events_from_cache( | |||
| 873 | .iter() | 874 | .iter() |
| 874 | .copied() | 875 | .copied() |
| 875 | .collect(); | 876 | .collect(); |
| 876 | commit_events.retain(|e| permissioned_users.contains(e.author_ref())); | 877 | commit_events.retain(|e| permissioned_users.contains(&e.author())); |
| 877 | 878 | ||
| 878 | let revision_roots: HashSet<nostr::EventId> = commit_events | 879 | let revision_roots: HashSet<nostr::EventId> = commit_events |
| 879 | .iter() | 880 | .iter() |
| @@ -899,7 +900,7 @@ pub async fn get_all_proposal_patch_events_from_cache( | |||
| 899 | 900 | ||
| 900 | Ok(commit_events | 901 | Ok(commit_events |
| 901 | .iter() | 902 | .iter() |
| 902 | .filter(|e| !event_is_cover_letter(e) && permissioned_users.contains(e.author_ref())) | 903 | .filter(|e| !event_is_cover_letter(e) && permissioned_users.contains(&e.author())) |
| 903 | .cloned() | 904 | .cloned() |
| 904 | .collect()) | 905 | .collect()) |
| 905 | } | 906 | } |
diff --git a/src/sub_commands/send.rs b/src/sub_commands/send.rs index 8369b10..3c4df9d 100644 --- a/src/sub_commands/send.rs +++ b/src/sub_commands/send.rs | |||
| @@ -806,8 +806,11 @@ pub fn event_is_cover_letter(event: &nostr::Event) -> bool { | |||
| 806 | // [PATCH v1 0/n ] or | 806 | // [PATCH v1 0/n ] or |
| 807 | // [PATCH subsystem v2 0/n ] | 807 | // [PATCH subsystem v2 0/n ] |
| 808 | event.kind.eq(&Kind::GitPatch) | 808 | event.kind.eq(&Kind::GitPatch) |
| 809 | && event.iter_tags().any(|t| t.as_vec()[1].eq("root")) | 809 | && event.tags().iter().any(|t| t.as_vec()[1].eq("root")) |
| 810 | && event.iter_tags().any(|t| t.as_vec()[1].eq("cover-letter")) | 810 | && event |
| 811 | .tags() | ||
| 812 | .iter() | ||
| 813 | .any(|t| t.as_vec()[1].eq("cover-letter")) | ||
| 811 | } | 814 | } |
| 812 | 815 | ||
| 813 | pub fn commit_msg_from_patch(patch: &nostr::Event) -> Result<String> { | 816 | pub fn commit_msg_from_patch(patch: &nostr::Event) -> Result<String> { |
| @@ -876,17 +879,22 @@ pub fn event_to_cover_letter(event: &nostr::Event) -> Result<CoverLetter> { | |||
| 876 | } | 879 | } |
| 877 | 880 | ||
| 878 | pub fn event_is_patch_set_root(event: &nostr::Event) -> bool { | 881 | pub fn event_is_patch_set_root(event: &nostr::Event) -> bool { |
| 879 | event.kind.eq(&Kind::GitPatch) && event.iter_tags().any(|t| t.as_vec()[1].eq("root")) | 882 | event.kind.eq(&Kind::GitPatch) && event.tags().iter().any(|t| t.as_vec()[1].eq("root")) |
| 880 | } | 883 | } |
| 881 | 884 | ||
| 882 | pub fn event_is_revision_root(event: &nostr::Event) -> bool { | 885 | pub fn event_is_revision_root(event: &nostr::Event) -> bool { |
| 883 | event.kind.eq(&Kind::GitPatch) && event.iter_tags().any(|t| t.as_vec()[1].eq("revision-root")) | 886 | event.kind.eq(&Kind::GitPatch) |
| 887 | && event | ||
| 888 | .tags() | ||
| 889 | .iter() | ||
| 890 | .any(|t| t.as_vec()[1].eq("revision-root")) | ||
| 884 | } | 891 | } |
| 885 | 892 | ||
| 886 | pub fn patch_supports_commit_ids(event: &nostr::Event) -> bool { | 893 | pub fn patch_supports_commit_ids(event: &nostr::Event) -> bool { |
| 887 | event.kind.eq(&Kind::GitPatch) | 894 | event.kind.eq(&Kind::GitPatch) |
| 888 | && event | 895 | && event |
| 889 | .iter_tags() | 896 | .tags() |
| 897 | .iter() | ||
| 890 | .any(|t| t.as_vec()[0].eq("commit-pgp-sig")) | 898 | .any(|t| t.as_vec()[0].eq("commit-pgp-sig")) |
| 891 | } | 899 | } |
| 892 | 900 | ||
diff --git a/test_utils/Cargo.toml b/test_utils/Cargo.toml index c92fa56..ff07b45 100644 --- a/test_utils/Cargo.toml +++ b/test_utils/Cargo.toml | |||
| @@ -10,10 +10,10 @@ dialoguer = "0.10.4" | |||
| 10 | directories = "5.0.1" | 10 | directories = "5.0.1" |
| 11 | futures = "0.3.28" | 11 | futures = "0.3.28" |
| 12 | git2 = "0.18.1" | 12 | git2 = "0.18.1" |
| 13 | nostr = "0.33.0" | 13 | nostr = "0.34.0" |
| 14 | nostr-database = "0.33.1" | 14 | nostr-database = "0.34.0" |
| 15 | nostr-sdk = "0.33.0" | 15 | nostr-sdk = "0.34.0" |
| 16 | nostr-sqlite = "0.33.0" | 16 | nostr-sqlite = "0.34.0" |
| 17 | once_cell = "1.18.0" | 17 | once_cell = "1.18.0" |
| 18 | rand = "0.8" | 18 | rand = "0.8" |
| 19 | rexpect = { git = "https://github.com/rust-cli/rexpect.git", rev = "9eb61dd" } | 19 | rexpect = { git = "https://github.com/rust-cli/rexpect.git", rev = "9eb61dd" } |
diff --git a/test_utils/src/lib.rs b/test_utils/src/lib.rs index 56e9b17..12cadeb 100644 --- a/test_utils/src/lib.rs +++ b/test_utils/src/lib.rs | |||
| @@ -1091,9 +1091,9 @@ pub fn get_proposal_branch_name_from_events( | |||
| 1091 | branch_name_in_event: &str, | 1091 | branch_name_in_event: &str, |
| 1092 | ) -> Result<String> { | 1092 | ) -> Result<String> { |
| 1093 | for event in events { | 1093 | for event in events { |
| 1094 | if event.iter_tags().any(|t| { | 1094 | if event.tags().iter().any(|t| { |
| 1095 | !t.as_vec()[1].eq("revision-root") | 1095 | !t.as_vec()[1].eq("revision-root") |
| 1096 | && event.iter_tags().any(|t| { | 1096 | && event.tags().iter().any(|t| { |
| 1097 | t.as_vec()[0].eq("branch-name") && t.as_vec()[1].eq(branch_name_in_event) | 1097 | t.as_vec()[0].eq("branch-name") && t.as_vec()[1].eq(branch_name_in_event) |
| 1098 | }) | 1098 | }) |
| 1099 | }) { | 1099 | }) { |
| @@ -1370,7 +1370,7 @@ fn get_first_proposal_event_id() -> Result<nostr::EventId> { | |||
| 1370 | vec!["root"], | 1370 | vec!["root"], |
| 1371 | ), | 1371 | ), |
| 1372 | ], | 1372 | ], |
| 1373 | Some(Duration::from_millis(500)), | 1373 | nostr_sdk::EventSource::relays(Some(Duration::from_millis(1000))), |
| 1374 | ))?; | 1374 | ))?; |
| 1375 | Handle::current().block_on(client.disconnect())?; | 1375 | Handle::current().block_on(client.disconnect())?; |
| 1376 | 1376 | ||
diff --git a/tests/git_remote_helper.rs b/tests/git_remote_helper.rs index a44b141..07f9ec8 100644 --- a/tests/git_remote_helper.rs +++ b/tests/git_remote_helper.rs | |||
| @@ -1730,6 +1730,7 @@ mod push { | |||
| 1730 | r51.events = events.clone(); | 1730 | r51.events = events.clone(); |
| 1731 | r55.events = events.clone(); | 1731 | r55.events = events.clone(); |
| 1732 | 1732 | ||
| 1733 | #[allow(clippy::mutable_key_type)] | ||
| 1733 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); | 1734 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); |
| 1734 | 1735 | ||
| 1735 | let cli_tester_handle = std::thread::spawn(move || -> Result<(String, Oid)> { | 1736 | let cli_tester_handle = std::thread::spawn(move || -> Result<(String, Oid)> { |
| @@ -1798,7 +1799,8 @@ mod push { | |||
| 1798 | .events | 1799 | .events |
| 1799 | .iter() | 1800 | .iter() |
| 1800 | .find(|e| { | 1801 | .find(|e| { |
| 1801 | e.iter_tags() | 1802 | e.tags() |
| 1803 | .iter() | ||
| 1802 | .find(|t| t.as_vec()[0].eq("branch-name")) | 1804 | .find(|t| t.as_vec()[0].eq("branch-name")) |
| 1803 | .is_some_and(|t| t.as_vec()[1].eq(FEATURE_BRANCH_NAME_1)) | 1805 | .is_some_and(|t| t.as_vec()[1].eq(FEATURE_BRANCH_NAME_1)) |
| 1804 | }) | 1806 | }) |
| @@ -1824,7 +1826,8 @@ mod push { | |||
| 1824 | .events | 1826 | .events |
| 1825 | .iter() | 1827 | .iter() |
| 1826 | .filter(|e| { | 1828 | .filter(|e| { |
| 1827 | e.iter_tags() | 1829 | e.tags() |
| 1830 | .iter() | ||
| 1828 | .any(|t| t.as_vec()[1].eq(&proposal.id().to_string())) | 1831 | .any(|t| t.as_vec()[1].eq(&proposal.id().to_string())) |
| 1829 | && e.kind().eq(&Kind::GitPatch) | 1832 | && e.kind().eq(&Kind::GitPatch) |
| 1830 | }) | 1833 | }) |
| @@ -1877,6 +1880,7 @@ mod push { | |||
| 1877 | r51.events = events.clone(); | 1880 | r51.events = events.clone(); |
| 1878 | r55.events = events.clone(); | 1881 | r55.events = events.clone(); |
| 1879 | 1882 | ||
| 1883 | #[allow(clippy::mutable_key_type)] | ||
| 1880 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); | 1884 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); |
| 1881 | 1885 | ||
| 1882 | let cli_tester_handle = std::thread::spawn(move || -> Result<(String, String)> { | 1886 | let cli_tester_handle = std::thread::spawn(move || -> Result<(String, String)> { |
| @@ -1950,7 +1954,8 @@ mod push { | |||
| 1950 | .events | 1954 | .events |
| 1951 | .iter() | 1955 | .iter() |
| 1952 | .find(|e| { | 1956 | .find(|e| { |
| 1953 | e.iter_tags() | 1957 | e.tags() |
| 1958 | .iter() | ||
| 1954 | .find(|t| t.as_vec()[0].eq("branch-name")) | 1959 | .find(|t| t.as_vec()[0].eq("branch-name")) |
| 1955 | .is_some_and(|t| t.as_vec()[1].eq(FEATURE_BRANCH_NAME_1)) | 1960 | .is_some_and(|t| t.as_vec()[1].eq(FEATURE_BRANCH_NAME_1)) |
| 1956 | }) | 1961 | }) |
| @@ -1982,7 +1987,8 @@ mod push { | |||
| 1982 | .events | 1987 | .events |
| 1983 | .iter() | 1988 | .iter() |
| 1984 | .find(|e| { | 1989 | .find(|e| { |
| 1985 | e.iter_tags() | 1990 | e.tags() |
| 1991 | .iter() | ||
| 1986 | .any(|t| t.as_vec()[1].eq(&proposal.id().to_string())) | 1992 | .any(|t| t.as_vec()[1].eq(&proposal.id().to_string())) |
| 1987 | && e.content.contains("[PATCH 2/2]") | 1993 | && e.content.contains("[PATCH 2/2]") |
| 1988 | }) | 1994 | }) |
| @@ -2019,6 +2025,7 @@ mod push { | |||
| 2019 | r51.events = events.clone(); | 2025 | r51.events = events.clone(); |
| 2020 | r55.events = events.clone(); | 2026 | r55.events = events.clone(); |
| 2021 | 2027 | ||
| 2028 | #[allow(clippy::mutable_key_type)] | ||
| 2022 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); | 2029 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); |
| 2023 | 2030 | ||
| 2024 | let cli_tester_handle = std::thread::spawn(move || -> Result<(String, String)> { | 2031 | let cli_tester_handle = std::thread::spawn(move || -> Result<(String, String)> { |
| @@ -2086,7 +2093,8 @@ mod push { | |||
| 2086 | .events | 2093 | .events |
| 2087 | .iter() | 2094 | .iter() |
| 2088 | .find(|e| { | 2095 | .find(|e| { |
| 2089 | e.iter_tags() | 2096 | e.tags() |
| 2097 | .iter() | ||
| 2090 | .find(|t| t.as_vec()[0].eq("branch-name")) | 2098 | .find(|t| t.as_vec()[0].eq("branch-name")) |
| 2091 | .is_some_and(|t| t.as_vec()[1].eq(FEATURE_BRANCH_NAME_1)) | 2099 | .is_some_and(|t| t.as_vec()[1].eq(FEATURE_BRANCH_NAME_1)) |
| 2092 | }) | 2100 | }) |
| @@ -2094,7 +2102,7 @@ mod push { | |||
| 2094 | 2102 | ||
| 2095 | let revision_root_patch = new_events | 2103 | let revision_root_patch = new_events |
| 2096 | .iter() | 2104 | .iter() |
| 2097 | .find(|e| e.iter_tags().any(|t| t.as_vec()[1].eq("revision-root"))) | 2105 | .find(|e| e.tags().iter().any(|t| t.as_vec()[1].eq("revision-root"))) |
| 2098 | .unwrap(); | 2106 | .unwrap(); |
| 2099 | 2107 | ||
| 2100 | assert_eq!( | 2108 | assert_eq!( |
| @@ -2172,6 +2180,7 @@ mod push { | |||
| 2172 | r51.events = events.clone(); | 2180 | r51.events = events.clone(); |
| 2173 | r55.events = events.clone(); | 2181 | r55.events = events.clone(); |
| 2174 | 2182 | ||
| 2183 | #[allow(clippy::mutable_key_type)] | ||
| 2175 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); | 2184 | let before = r55.events.iter().cloned().collect::<HashSet<Event>>(); |
| 2176 | let branch_name = "pr/my-new-proposal"; | 2185 | let branch_name = "pr/my-new-proposal"; |
| 2177 | 2186 | ||
| @@ -2231,7 +2240,7 @@ mod push { | |||
| 2231 | 2240 | ||
| 2232 | let proposal = new_events | 2241 | let proposal = new_events |
| 2233 | .iter() | 2242 | .iter() |
| 2234 | .find(|e| e.iter_tags().any(|t| t.as_vec()[1].eq("root"))) | 2243 | .find(|e| e.tags().iter().any(|t| t.as_vec()[1].eq("root"))) |
| 2235 | .unwrap(); | 2244 | .unwrap(); |
| 2236 | 2245 | ||
| 2237 | assert!( | 2246 | assert!( |
| @@ -2246,7 +2255,8 @@ mod push { | |||
| 2246 | 2255 | ||
| 2247 | assert_eq!( | 2256 | assert_eq!( |
| 2248 | proposal | 2257 | proposal |
| 2249 | .iter_tags() | 2258 | .tags() |
| 2259 | .iter() | ||
| 2250 | .find(|t| t.as_vec()[0].eq("branch-name")) | 2260 | .find(|t| t.as_vec()[0].eq("branch-name")) |
| 2251 | .unwrap() | 2261 | .unwrap() |
| 2252 | .as_vec()[1], | 2262 | .as_vec()[1], |
diff --git a/tests/send.rs b/tests/send.rs index 57987e3..ef09425 100644 --- a/tests/send.rs +++ b/tests/send.rs | |||
| @@ -85,11 +85,19 @@ mod when_commits_behind_ask_to_proceed { | |||
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | fn is_cover_letter(event: &nostr::Event) -> bool { | 87 | fn is_cover_letter(event: &nostr::Event) -> bool { |
| 88 | event.kind.eq(&Kind::GitPatch) && event.iter_tags().any(|t| t.as_vec()[1].eq("cover-letter")) | 88 | event.kind.eq(&Kind::GitPatch) |
| 89 | && event | ||
| 90 | .tags() | ||
| 91 | .iter() | ||
| 92 | .any(|t| t.as_vec()[1].eq("cover-letter")) | ||
| 89 | } | 93 | } |
| 90 | 94 | ||
| 91 | fn is_patch(event: &nostr::Event) -> bool { | 95 | fn is_patch(event: &nostr::Event) -> bool { |
| 92 | event.kind.eq(&Kind::GitPatch) && !event.iter_tags().any(|t| t.as_vec()[1].eq("cover-letter")) | 96 | event.kind.eq(&Kind::GitPatch) |
| 97 | && !event | ||
| 98 | .tags() | ||
| 99 | .iter() | ||
| 100 | .any(|t| t.as_vec()[1].eq("cover-letter")) | ||
| 93 | } | 101 | } |
| 94 | 102 | ||
| 95 | fn prep_git_repo() -> Result<GitTestRepo> { | 103 | fn prep_git_repo() -> Result<GitTestRepo> { |
| @@ -366,7 +374,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 366 | 374 | ||
| 367 | assert_eq!( | 375 | assert_eq!( |
| 368 | cover_letter_event | 376 | cover_letter_event |
| 369 | .iter_tags() | 377 | .tags() |
| 378 | .iter() | ||
| 370 | .find(|t| t.as_vec()[0].eq("r")) | 379 | .find(|t| t.as_vec()[0].eq("r")) |
| 371 | .unwrap() | 380 | .unwrap() |
| 372 | .as_vec()[1], | 381 | .as_vec()[1], |
| @@ -383,18 +392,28 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 383 | for relay in [&r53, &r55, &r56] { | 392 | for relay in [&r53, &r55, &r56] { |
| 384 | let cover_letter_event: &nostr::Event = | 393 | let cover_letter_event: &nostr::Event = |
| 385 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 394 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 386 | assert!(cover_letter_event.iter_tags().any(|t| t.as_vec()[0].eq("a") | 395 | assert!( |
| 387 | && t.as_vec()[1].eq(&format!( | 396 | cover_letter_event |
| 388 | "{}:{TEST_KEY_1_PUBKEY_HEX}:{}", | 397 | .tags() |
| 389 | Kind::GitRepoAnnouncement, | 398 | .iter() |
| 390 | generate_repo_ref_event().identifier().unwrap() | 399 | .any(|t| t.as_vec()[0].eq("a") |
| 391 | )))); | 400 | && t.as_vec()[1].eq(&format!( |
| 392 | assert!(cover_letter_event.iter_tags().any(|t| t.as_vec()[0].eq("a") | 401 | "{}:{TEST_KEY_1_PUBKEY_HEX}:{}", |
| 393 | && t.as_vec()[1].eq(&format!( | 402 | Kind::GitRepoAnnouncement, |
| 394 | "{}:{TEST_KEY_2_PUBKEY_HEX}:{}", | 403 | generate_repo_ref_event().identifier().unwrap() |
| 395 | Kind::GitRepoAnnouncement, | 404 | ))) |
| 396 | generate_repo_ref_event().identifier().unwrap() | 405 | ); |
| 397 | )))); | 406 | assert!( |
| 407 | cover_letter_event | ||
| 408 | .tags() | ||
| 409 | .iter() | ||
| 410 | .any(|t| t.as_vec()[0].eq("a") | ||
| 411 | && t.as_vec()[1].eq(&format!( | ||
| 412 | "{}:{TEST_KEY_2_PUBKEY_HEX}:{}", | ||
| 413 | Kind::GitRepoAnnouncement, | ||
| 414 | generate_repo_ref_event().identifier().unwrap() | ||
| 415 | ))) | ||
| 416 | ); | ||
| 398 | } | 417 | } |
| 399 | Ok(()) | 418 | Ok(()) |
| 400 | } | 419 | } |
| @@ -404,7 +423,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 404 | async fn p_tags_for_maintainers() -> Result<()> { | 423 | async fn p_tags_for_maintainers() -> Result<()> { |
| 405 | let event = generate_repo_ref_event(); | 424 | let event = generate_repo_ref_event(); |
| 406 | let maintainers = &event | 425 | let maintainers = &event |
| 407 | .iter_tags() | 426 | .tags() |
| 427 | .iter() | ||
| 408 | .find(|t| t.as_vec()[0].eq(&"maintainers")) | 428 | .find(|t| t.as_vec()[0].eq(&"maintainers")) |
| 409 | .unwrap() | 429 | .unwrap() |
| 410 | .as_vec()[1..]; | 430 | .as_vec()[1..]; |
| @@ -415,7 +435,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 415 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 435 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 416 | assert!( | 436 | assert!( |
| 417 | cover_letter_event | 437 | cover_letter_event |
| 418 | .iter_tags() | 438 | .tags() |
| 439 | .iter() | ||
| 419 | .any(|t| { t.as_vec()[0].eq("p") && t.as_vec()[1].eq(m) }) | 440 | .any(|t| { t.as_vec()[0].eq("p") && t.as_vec()[1].eq(m) }) |
| 420 | ); | 441 | ); |
| 421 | } | 442 | } |
| @@ -432,7 +453,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 432 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 453 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 433 | assert!( | 454 | assert!( |
| 434 | cover_letter_event | 455 | cover_letter_event |
| 435 | .iter_tags() | 456 | .tags() |
| 457 | .iter() | ||
| 436 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"cover-letter") }) | 458 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"cover-letter") }) |
| 437 | ); | 459 | ); |
| 438 | } | 460 | } |
| @@ -448,7 +470,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 448 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 470 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 449 | assert!( | 471 | assert!( |
| 450 | cover_letter_event | 472 | cover_letter_event |
| 451 | .iter_tags() | 473 | .tags() |
| 474 | .iter() | ||
| 452 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"root") }) | 475 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"root") }) |
| 453 | ); | 476 | ); |
| 454 | } | 477 | } |
| @@ -466,7 +489,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 466 | // branch-name tag | 489 | // branch-name tag |
| 467 | assert_eq!( | 490 | assert_eq!( |
| 468 | cover_letter_event | 491 | cover_letter_event |
| 469 | .iter_tags() | 492 | .tags() |
| 493 | .iter() | ||
| 470 | .find(|t| t.as_vec()[0].eq("branch-name")) | 494 | .find(|t| t.as_vec()[0].eq("branch-name")) |
| 471 | .unwrap() | 495 | .unwrap() |
| 472 | .as_vec()[1], | 496 | .as_vec()[1], |
| @@ -487,7 +511,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 487 | // branch-name tag | 511 | // branch-name tag |
| 488 | assert_eq!( | 512 | assert_eq!( |
| 489 | cover_letter_event | 513 | cover_letter_event |
| 490 | .iter_tags() | 514 | .tags() |
| 515 | .iter() | ||
| 491 | .find(|t| t.as_vec()[0].eq("alt")) | 516 | .find(|t| t.as_vec()[0].eq("alt")) |
| 492 | .unwrap() | 517 | .unwrap() |
| 493 | .as_vec()[1], | 518 | .as_vec()[1], |
| @@ -557,7 +582,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 557 | async fn p_tags_for_maintainers() -> Result<()> { | 582 | async fn p_tags_for_maintainers() -> Result<()> { |
| 558 | let event = generate_repo_ref_event(); | 583 | let event = generate_repo_ref_event(); |
| 559 | let maintainers = &event | 584 | let maintainers = &event |
| 560 | .iter_tags() | 585 | .tags() |
| 586 | .iter() | ||
| 561 | .find(|t| t.as_vec()[0].eq(&"maintainers")) | 587 | .find(|t| t.as_vec()[0].eq(&"maintainers")) |
| 562 | .unwrap() | 588 | .unwrap() |
| 563 | .as_vec()[1..]; | 589 | .as_vec()[1..]; |
| @@ -565,7 +591,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 565 | assert!( | 591 | assert!( |
| 566 | prep() | 592 | prep() |
| 567 | .await? | 593 | .await? |
| 568 | .iter_tags() | 594 | .tags() |
| 595 | .iter() | ||
| 569 | .any(|t| { t.as_vec()[0].eq("p") && t.as_vec()[1].eq(m) }) | 596 | .any(|t| { t.as_vec()[0].eq("p") && t.as_vec()[1].eq(m) }) |
| 570 | ); | 597 | ); |
| 571 | } | 598 | } |
| @@ -697,7 +724,8 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ | |||
| 697 | .collect::<Vec<&nostr::Event>>(); | 724 | .collect::<Vec<&nostr::Event>>(); |
| 698 | assert_eq!( | 725 | assert_eq!( |
| 699 | patch_events[1] | 726 | patch_events[1] |
| 700 | .iter_tags() | 727 | .tags() |
| 728 | .iter() | ||
| 701 | .find(|t| t.as_vec()[0].eq("e") | 729 | .find(|t| t.as_vec()[0].eq("e") |
| 702 | && t.as_vec().len().eq(&4) | 730 | && t.as_vec().len().eq(&4) |
| 703 | && t.as_vec()[3].eq("reply")) | 731 | && t.as_vec()[3].eq("reply")) |
| @@ -1086,13 +1114,15 @@ mod when_no_cover_letter_flag_set_with_range_of_head_2_sends_2_patches_without_c | |||
| 1086 | // first patch tagged as root | 1114 | // first patch tagged as root |
| 1087 | assert!( | 1115 | assert!( |
| 1088 | patch_events[0] | 1116 | patch_events[0] |
| 1089 | .iter_tags() | 1117 | .tags() |
| 1118 | .iter() | ||
| 1090 | .any(|t| t.as_vec()[0].eq("t") && t.as_vec()[1].eq("root")) | 1119 | .any(|t| t.as_vec()[0].eq("t") && t.as_vec()[1].eq("root")) |
| 1091 | ); | 1120 | ); |
| 1092 | // second patch not tagged as root | 1121 | // second patch not tagged as root |
| 1093 | assert!( | 1122 | assert!( |
| 1094 | !patch_events[1] | 1123 | !patch_events[1] |
| 1095 | .iter_tags() | 1124 | .tags() |
| 1125 | .iter() | ||
| 1096 | .any(|t| t.as_vec()[0].eq("t") && t.as_vec()[1].eq("root")) | 1126 | .any(|t| t.as_vec()[0].eq("t") && t.as_vec()[1].eq("root")) |
| 1097 | ); | 1127 | ); |
| 1098 | } | 1128 | } |
| @@ -1113,7 +1143,8 @@ mod when_no_cover_letter_flag_set_with_range_of_head_2_sends_2_patches_without_c | |||
| 1113 | // branch-name tag | 1143 | // branch-name tag |
| 1114 | assert_eq!( | 1144 | assert_eq!( |
| 1115 | patch_events[0] | 1145 | patch_events[0] |
| 1116 | .iter_tags() | 1146 | .tags() |
| 1147 | .iter() | ||
| 1117 | .find(|t| t.as_vec()[0].eq("branch-name")) | 1148 | .find(|t| t.as_vec()[0].eq("branch-name")) |
| 1118 | .unwrap() | 1149 | .unwrap() |
| 1119 | .as_vec()[1], | 1150 | .as_vec()[1], |
| @@ -1136,7 +1167,8 @@ mod when_no_cover_letter_flag_set_with_range_of_head_2_sends_2_patches_without_c | |||
| 1136 | 1167 | ||
| 1137 | assert_eq!( | 1168 | assert_eq!( |
| 1138 | patch_events[1] | 1169 | patch_events[1] |
| 1139 | .iter_tags() | 1170 | .tags() |
| 1171 | .iter() | ||
| 1140 | .find(|t| t.as_vec()[0].eq("e") | 1172 | .find(|t| t.as_vec()[0].eq("e") |
| 1141 | && t.as_vec().len().eq(&4) | 1173 | && t.as_vec().len().eq(&4) |
| 1142 | && t.as_vec()[3].eq("root")) | 1174 | && t.as_vec()[3].eq("root")) |
| @@ -1540,7 +1572,8 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let | |||
| 1540 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 1572 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 1541 | assert!( | 1573 | assert!( |
| 1542 | cover_letter_event | 1574 | cover_letter_event |
| 1543 | .iter_tags() | 1575 | .tags() |
| 1576 | .iter() | ||
| 1544 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"root") }) | 1577 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"root") }) |
| 1545 | ); | 1578 | ); |
| 1546 | } | 1579 | } |
| @@ -1556,7 +1589,8 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let | |||
| 1556 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 1589 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 1557 | assert!( | 1590 | assert!( |
| 1558 | cover_letter_event | 1591 | cover_letter_event |
| 1559 | .iter_tags() | 1592 | .tags() |
| 1593 | .iter() | ||
| 1560 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"revision-root") }) | 1594 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"revision-root") }) |
| 1561 | ); | 1595 | ); |
| 1562 | } | 1596 | } |
| @@ -1572,7 +1606,8 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let | |||
| 1572 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 1606 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 1573 | assert_eq!( | 1607 | assert_eq!( |
| 1574 | cover_letter_event | 1608 | cover_letter_event |
| 1575 | .iter_tags() | 1609 | .tags() |
| 1610 | .iter() | ||
| 1576 | .find(|t| { | 1611 | .find(|t| { |
| 1577 | t.as_vec()[0].eq("e") | 1612 | t.as_vec()[0].eq("e") |
| 1578 | && t.as_vec().len().eq(&4) | 1613 | && t.as_vec().len().eq(&4) |
| @@ -1719,7 +1754,7 @@ mod in_reply_to_mentions_issue { | |||
| 1719 | for relay in [&r53, &r55, &r56] { | 1754 | for relay in [&r53, &r55, &r56] { |
| 1720 | let cover_letter_event: &nostr::Event = | 1755 | let cover_letter_event: &nostr::Event = |
| 1721 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 1756 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 1722 | assert!(cover_letter_event.iter_tags().any(|t| { | 1757 | assert!(cover_letter_event.tags().iter().any(|t| { |
| 1723 | t.as_vec()[0].eq("e") | 1758 | t.as_vec()[0].eq("e") |
| 1724 | && t.as_vec()[1].eq(&get_pretend_issue_event().id.to_hex()) | 1759 | && t.as_vec()[1].eq(&get_pretend_issue_event().id.to_hex()) |
| 1725 | && t.as_vec()[3].eq(&"mention") | 1760 | && t.as_vec()[3].eq(&"mention") |
| @@ -1737,7 +1772,8 @@ mod in_reply_to_mentions_issue { | |||
| 1737 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 1772 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 1738 | assert!( | 1773 | assert!( |
| 1739 | !cover_letter_event | 1774 | !cover_letter_event |
| 1740 | .iter_tags() | 1775 | .tags() |
| 1776 | .iter() | ||
| 1741 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"revision-root") }) | 1777 | .any(|t| { t.as_vec()[0].eq("t") && t.as_vec()[1].eq(&"revision-root") }) |
| 1742 | ); | 1778 | ); |
| 1743 | } | 1779 | } |
| @@ -1841,7 +1877,7 @@ mod in_reply_to_mentions_npub_and_nprofile_which_get_mentioned_in_proposal_root | |||
| 1841 | for relay in [&r53, &r55, &r56] { | 1877 | for relay in [&r53, &r55, &r56] { |
| 1842 | let cover_letter_event: &nostr::Event = | 1878 | let cover_letter_event: &nostr::Event = |
| 1843 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); | 1879 | relay.events.iter().find(|e| is_cover_letter(e)).unwrap(); |
| 1844 | assert!(cover_letter_event.iter_tags().any(|t| { | 1880 | assert!(cover_letter_event.tags().iter().any(|t| { |
| 1845 | t.as_vec()[0].eq("p") | 1881 | t.as_vec()[0].eq("p") |
| 1846 | && t.as_vec()[1].eq(&nostr::Keys::parse( | 1882 | && t.as_vec()[1].eq(&nostr::Keys::parse( |
| 1847 | "nsec1q3c5xnsm5m4wgsrhwnz04p0d5mevkryyggqgdpa9jwulpq9gldhswgtxvq", | 1883 | "nsec1q3c5xnsm5m4wgsrhwnz04p0d5mevkryyggqgdpa9jwulpq9gldhswgtxvq", |
| @@ -1850,7 +1886,7 @@ mod in_reply_to_mentions_npub_and_nprofile_which_get_mentioned_in_proposal_root | |||
| 1850 | .public_key() | 1886 | .public_key() |
| 1851 | .to_hex()) | 1887 | .to_hex()) |
| 1852 | })); | 1888 | })); |
| 1853 | assert!(cover_letter_event.iter_tags().any(|t| { | 1889 | assert!(cover_letter_event.tags().iter().any(|t| { |
| 1854 | t.as_vec()[0].eq("p") | 1890 | t.as_vec()[0].eq("p") |
| 1855 | && t.as_vec()[1].eq(&nostr::Keys::parse( | 1891 | && t.as_vec()[1].eq(&nostr::Keys::parse( |
| 1856 | "nsec1nx5ulvcndhcuu8k6q8fenw50l6y75sec7pj8vr0r68l6a44w3lqspvj02k", | 1892 | "nsec1nx5ulvcndhcuu8k6q8fenw50l6y75sec7pj8vr0r68l6a44w3lqspvj02k", |