diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2024-01-26 21:32:21 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2024-01-26 21:32:21 +0000 |
| commit | fc3f22eac2bb81823f170f61ba9d39baff76b933 (patch) | |
| tree | b6eec0bad2850e90bdded550bd175849f8e1abff | |
| parent | d96c8f6687be8966a0bb25c679995fea3b9f0715 (diff) | |
chore: upgrade rust-nostr v0.27.0v0.1.1
this is a contribution from jk (sectore) that I rebased and squashed
into this commit.
the tests were broken in the last few commits to rush out some fixes.
this change may introduce more issues because of
Relay.respond_standard_req.
| -rw-r--r-- | Cargo.lock | 96 | ||||
| -rw-r--r-- | Cargo.toml | 4 | ||||
| -rw-r--r-- | flake.lock | 18 | ||||
| -rw-r--r-- | src/client.rs | 18 | ||||
| -rw-r--r-- | src/key_handling/users.rs | 4 | ||||
| -rw-r--r-- | src/repo_ref.rs | 4 | ||||
| -rw-r--r-- | src/sub_commands/prs/create.rs | 14 | ||||
| -rw-r--r-- | test_utils/Cargo.toml | 2 | ||||
| -rw-r--r-- | test_utils/src/lib.rs | 34 | ||||
| -rw-r--r-- | test_utils/src/relay.rs | 11 | ||||
| -rw-r--r-- | tests/login.rs | 3 |
11 files changed, 120 insertions, 88 deletions
| @@ -313,6 +313,24 @@ dependencies = [ | |||
| 313 | ] | 313 | ] |
| 314 | 314 | ||
| 315 | [[package]] | 315 | [[package]] |
| 316 | name = "async-wsocket" | ||
| 317 | version = "0.1.0" | ||
| 318 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 319 | checksum = "82d55992e9155e571208dc012c2a5c056572d1ab167bc299a63810ebf910226c" | ||
| 320 | dependencies = [ | ||
| 321 | "async-utility", | ||
| 322 | "futures-util", | ||
| 323 | "thiserror", | ||
| 324 | "tokio", | ||
| 325 | "tokio-rustls", | ||
| 326 | "tokio-socks", | ||
| 327 | "tokio-tungstenite", | ||
| 328 | "url-fork", | ||
| 329 | "wasm-ws", | ||
| 330 | "webpki-roots", | ||
| 331 | ] | ||
| 332 | |||
| 333 | [[package]] | ||
| 316 | name = "async_io_stream" | 334 | name = "async_io_stream" |
| 317 | version = "0.3.3" | 335 | version = "0.3.3" |
| 318 | source = "registry+https://github.com/rust-lang/crates.io-index" | 336 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| @@ -1653,9 +1671,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" | |||
| 1653 | 1671 | ||
| 1654 | [[package]] | 1672 | [[package]] |
| 1655 | name = "nostr" | 1673 | name = "nostr" |
| 1656 | version = "0.25.0" | 1674 | version = "0.27.0" |
| 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1658 | checksum = "1b65a1b93d2c78550f8e7f84ce475b44c4f04e46b08d30be98523eaa498abae4" | 1676 | checksum = "3e47228d958fd65ef3e04650a3b1dd80f16f10f0243c80ed969556dead0f48c8" |
| 1659 | dependencies = [ | 1677 | dependencies = [ |
| 1660 | "aes 0.8.3", | 1678 | "aes 0.8.3", |
| 1661 | "base64", | 1679 | "base64", |
| @@ -1665,6 +1683,7 @@ dependencies = [ | |||
| 1665 | "chacha20", | 1683 | "chacha20", |
| 1666 | "getrandom", | 1684 | "getrandom", |
| 1667 | "instant", | 1685 | "instant", |
| 1686 | "js-sys", | ||
| 1668 | "negentropy", | 1687 | "negentropy", |
| 1669 | "once_cell", | 1688 | "once_cell", |
| 1670 | "reqwest", | 1689 | "reqwest", |
| @@ -1672,38 +1691,38 @@ dependencies = [ | |||
| 1672 | "serde_json", | 1691 | "serde_json", |
| 1673 | "tracing", | 1692 | "tracing", |
| 1674 | "url-fork", | 1693 | "url-fork", |
| 1694 | "wasm-bindgen", | ||
| 1695 | "wasm-bindgen-futures", | ||
| 1696 | "web-sys", | ||
| 1675 | ] | 1697 | ] |
| 1676 | 1698 | ||
| 1677 | [[package]] | 1699 | [[package]] |
| 1678 | name = "nostr-sdk" | 1700 | name = "nostr-database" |
| 1679 | version = "0.25.0" | 1701 | version = "0.27.0" |
| 1680 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1702 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1681 | checksum = "f887f45f344828e14740eb37b32c6ae3b6ac5dc7ea94dd60817507c44a770b01" | 1703 | checksum = "aa0550256c8d4f0aaf74891ac986bd5ba46b2957c2c7e20f51838fa5819285f8" |
| 1682 | dependencies = [ | 1704 | dependencies = [ |
| 1683 | "async-utility", | 1705 | "async-trait", |
| 1684 | "nostr", | 1706 | "nostr", |
| 1685 | "nostr-sdk-net", | ||
| 1686 | "once_cell", | ||
| 1687 | "thiserror", | 1707 | "thiserror", |
| 1688 | "tokio", | 1708 | "tokio", |
| 1689 | "tracing", | 1709 | "tracing", |
| 1690 | ] | 1710 | ] |
| 1691 | 1711 | ||
| 1692 | [[package]] | 1712 | [[package]] |
| 1693 | name = "nostr-sdk-net" | 1713 | name = "nostr-sdk" |
| 1694 | version = "0.25.0" | 1714 | version = "0.27.0" |
| 1695 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1715 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1696 | checksum = "18d66a499ce2e1ab5ac03626df913d4fe2aa544231ec8b04f312cc13b74d50b2" | 1716 | checksum = "3cf190e41230721f0ce64f5ea72ed36cbc431d3b305eb166e24a94f5d7e4a425" |
| 1697 | dependencies = [ | 1717 | dependencies = [ |
| 1698 | "futures-util", | 1718 | "async-utility", |
| 1719 | "async-wsocket", | ||
| 1720 | "nostr", | ||
| 1721 | "nostr-database", | ||
| 1722 | "once_cell", | ||
| 1699 | "thiserror", | 1723 | "thiserror", |
| 1700 | "tokio", | 1724 | "tokio", |
| 1701 | "tokio-rustls", | 1725 | "tracing", |
| 1702 | "tokio-socks", | ||
| 1703 | "tokio-tungstenite", | ||
| 1704 | "url-fork", | ||
| 1705 | "webpki-roots", | ||
| 1706 | "ws_stream_wasm", | ||
| 1707 | ] | 1726 | ] |
| 1708 | 1727 | ||
| 1709 | [[package]] | 1728 | [[package]] |
| @@ -1809,9 +1828,9 @@ dependencies = [ | |||
| 1809 | 1828 | ||
| 1810 | [[package]] | 1829 | [[package]] |
| 1811 | name = "once_cell" | 1830 | name = "once_cell" |
| 1812 | version = "1.18.0" | 1831 | version = "1.19.0" |
| 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 1814 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" | 1833 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" |
| 1815 | 1834 | ||
| 1816 | [[package]] | 1835 | [[package]] |
| 1817 | name = "opaque-debug" | 1836 | name = "opaque-debug" |
| @@ -2537,6 +2556,7 @@ version = "1.0.108" | |||
| 2537 | source = "registry+https://github.com/rust-lang/crates.io-index" | 2556 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 2538 | checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" | 2557 | checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" |
| 2539 | dependencies = [ | 2558 | dependencies = [ |
| 2559 | "indexmap 2.1.0", | ||
| 2540 | "itoa", | 2560 | "itoa", |
| 2541 | "ryu", | 2561 | "ryu", |
| 2542 | "serde", | 2562 | "serde", |
| @@ -3228,6 +3248,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
| 3228 | checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" | 3248 | checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" |
| 3229 | 3249 | ||
| 3230 | [[package]] | 3250 | [[package]] |
| 3251 | name = "wasm-ws" | ||
| 3252 | version = "0.1.1" | ||
| 3253 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 3254 | checksum = "f5b3a482e27ff54809c0848629d9033179705c5ea2f58e26cf45dc77c34c4984" | ||
| 3255 | dependencies = [ | ||
| 3256 | "async_io_stream", | ||
| 3257 | "futures", | ||
| 3258 | "js-sys", | ||
| 3259 | "pharos", | ||
| 3260 | "send_wrapper", | ||
| 3261 | "thiserror", | ||
| 3262 | "wasm-bindgen", | ||
| 3263 | "wasm-bindgen-futures", | ||
| 3264 | "web-sys", | ||
| 3265 | ] | ||
| 3266 | |||
| 3267 | [[package]] | ||
| 3231 | name = "web-sys" | 3268 | name = "web-sys" |
| 3232 | version = "0.3.65" | 3269 | version = "0.3.65" |
| 3233 | source = "registry+https://github.com/rust-lang/crates.io-index" | 3270 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| @@ -3417,25 +3454,6 @@ dependencies = [ | |||
| 3417 | ] | 3454 | ] |
| 3418 | 3455 | ||
| 3419 | [[package]] | 3456 | [[package]] |
| 3420 | name = "ws_stream_wasm" | ||
| 3421 | version = "0.7.4" | ||
| 3422 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 3423 | checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" | ||
| 3424 | dependencies = [ | ||
| 3425 | "async_io_stream", | ||
| 3426 | "futures", | ||
| 3427 | "js-sys", | ||
| 3428 | "log", | ||
| 3429 | "pharos", | ||
| 3430 | "rustc_version", | ||
| 3431 | "send_wrapper", | ||
| 3432 | "thiserror", | ||
| 3433 | "wasm-bindgen", | ||
| 3434 | "wasm-bindgen-futures", | ||
| 3435 | "web-sys", | ||
| 3436 | ] | ||
| 3437 | |||
| 3438 | [[package]] | ||
| 3439 | name = "xdg-home" | 3457 | name = "xdg-home" |
| 3440 | version = "1.0.0" | 3458 | version = "1.0.0" |
| 3441 | source = "registry+https://github.com/rust-lang/crates.io-index" | 3459 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| @@ -23,8 +23,8 @@ futures = "0.3.28" | |||
| 23 | git2 = "0.18.1" | 23 | git2 = "0.18.1" |
| 24 | indicatif = "0.17.7" | 24 | indicatif = "0.17.7" |
| 25 | keyring = "2.0.5" | 25 | keyring = "2.0.5" |
| 26 | nostr = "0.25.0" | 26 | nostr = "0.27.0" |
| 27 | nostr-sdk = "0.25.0" | 27 | nostr-sdk = "0.27.0" |
| 28 | passwords = "3.1.13" | 28 | passwords = "3.1.13" |
| 29 | scrypt = "0.11.0" | 29 | scrypt = "0.11.0" |
| 30 | serde = { version = "1.0.181", features = ["derive"] } | 30 | serde = { version = "1.0.181", features = ["derive"] } |
| @@ -5,11 +5,11 @@ | |||
| 5 | "systems": "systems" | 5 | "systems": "systems" |
| 6 | }, | 6 | }, |
| 7 | "locked": { | 7 | "locked": { |
| 8 | "lastModified": 1701680307, | 8 | "lastModified": 1705309234, |
| 9 | "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", | 9 | "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", |
| 10 | "owner": "numtide", | 10 | "owner": "numtide", |
| 11 | "repo": "flake-utils", | 11 | "repo": "flake-utils", |
| 12 | "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", | 12 | "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", |
| 13 | "type": "github" | 13 | "type": "github" |
| 14 | }, | 14 | }, |
| 15 | "original": { | 15 | "original": { |
| @@ -38,11 +38,11 @@ | |||
| 38 | }, | 38 | }, |
| 39 | "nixpkgs": { | 39 | "nixpkgs": { |
| 40 | "locked": { | 40 | "locked": { |
| 41 | "lastModified": 1701436327, | 41 | "lastModified": 1705856552, |
| 42 | "narHash": "sha256-tRHbnoNI8SIM5O5xuxOmtSLnswEByzmnQcGGyNRjxsE=", | 42 | "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=", |
| 43 | "owner": "NixOS", | 43 | "owner": "NixOS", |
| 44 | "repo": "nixpkgs", | 44 | "repo": "nixpkgs", |
| 45 | "rev": "91050ea1e57e50388fa87a3302ba12d188ef723a", | 45 | "rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d", |
| 46 | "type": "github" | 46 | "type": "github" |
| 47 | }, | 47 | }, |
| 48 | "original": { | 48 | "original": { |
| @@ -81,11 +81,11 @@ | |||
| 81 | "nixpkgs": "nixpkgs_2" | 81 | "nixpkgs": "nixpkgs_2" |
| 82 | }, | 82 | }, |
| 83 | "locked": { | 83 | "locked": { |
| 84 | "lastModified": 1701829002, | 84 | "lastModified": 1706235145, |
| 85 | "narHash": "sha256-zUQTSNujRESm2s0SvL4EXx1l5BqX7VNDAaFWGnaylUY=", | 85 | "narHash": "sha256-3jh5nahTlcsX6QFcMPqxtLn9p9CgT9RSce5GLqjcpi4=", |
| 86 | "owner": "oxalica", | 86 | "owner": "oxalica", |
| 87 | "repo": "rust-overlay", | 87 | "repo": "rust-overlay", |
| 88 | "rev": "1fdfc1689218998460983986501bd65ba5bbee0f", | 88 | "rev": "3a57c4e29cb2beb777b2e6ae7309a680585b8b2f", |
| 89 | "type": "github" | 89 | "type": "github" |
| 90 | }, | 90 | }, |
| 91 | "original": { | 91 | "original": { |
diff --git a/src/client.rs b/src/client.rs index 9aa574d..237ff24 100644 --- a/src/client.rs +++ b/src/client.rs | |||
| @@ -16,7 +16,9 @@ use futures::stream::{self, StreamExt}; | |||
| 16 | #[cfg(test)] | 16 | #[cfg(test)] |
| 17 | use mockall::*; | 17 | use mockall::*; |
| 18 | use nostr::Event; | 18 | use nostr::Event; |
| 19 | use nostr_sdk::ClientSigner; | ||
| 19 | 20 | ||
| 21 | #[allow(clippy::struct_field_names)] | ||
| 20 | pub struct Client { | 22 | pub struct Client { |
| 21 | client: nostr_sdk::Client, | 23 | client: nostr_sdk::Client, |
| 22 | fallback_relays: Vec<String>, | 24 | fallback_relays: Vec<String>, |
| @@ -87,7 +89,9 @@ impl Connect for Client { | |||
| 87 | } | 89 | } |
| 88 | 90 | ||
| 89 | async fn set_keys(&mut self, keys: &nostr::Keys) { | 91 | async fn set_keys(&mut self, keys: &nostr::Keys) { |
| 90 | self.client.set_keys(keys).await; | 92 | self.client |
| 93 | .set_signer(Some(ClientSigner::Keys(keys.clone()))) | ||
| 94 | .await; | ||
| 91 | } | 95 | } |
| 92 | 96 | ||
| 93 | async fn disconnect(&self) -> Result<()> { | 97 | async fn disconnect(&self) -> Result<()> { |
| @@ -104,7 +108,7 @@ impl Connect for Client { | |||
| 104 | } | 108 | } |
| 105 | 109 | ||
| 106 | async fn send_event_to(&self, url: &str, event: Event) -> Result<nostr::EventId> { | 110 | async fn send_event_to(&self, url: &str, event: Event) -> Result<nostr::EventId> { |
| 107 | self.client.add_relay(url, None).await?; | 111 | self.client.add_relay(url).await?; |
| 108 | self.client.connect_relay(url).await?; | 112 | self.client.connect_relay(url).await?; |
| 109 | Ok(self.client.send_event_to(url, event).await?) | 113 | Ok(self.client.send_event_to(url, event).await?) |
| 110 | } | 114 | } |
| @@ -117,7 +121,7 @@ impl Connect for Client { | |||
| 117 | // add relays | 121 | // add relays |
| 118 | for relay in &relays { | 122 | for relay in &relays { |
| 119 | self.client | 123 | self.client |
| 120 | .add_relay(relay.as_str(), None) | 124 | .add_relay(relay.as_str()) |
| 121 | .await | 125 | .await |
| 122 | .context("cannot add relay")?; | 126 | .context("cannot add relay")?; |
| 123 | } | 127 | } |
| @@ -134,10 +138,6 @@ impl Connect for Client { | |||
| 134 | ) | 138 | ) |
| 135 | }) | 139 | }) |
| 136 | .map(|(relay, filters)| async { | 140 | .map(|(relay, filters)| async { |
| 137 | if !relay.is_connected().await { | ||
| 138 | relay.connect(false).await; | ||
| 139 | } | ||
| 140 | |||
| 141 | match get_events_of(relay, filters).await { | 141 | match get_events_of(relay, filters).await { |
| 142 | Err(error) => { | 142 | Err(error) => { |
| 143 | println!("{} {}", error, relay.url()); | 143 | println!("{} {}", error, relay.url()); |
| @@ -159,7 +159,9 @@ async fn get_events_of( | |||
| 159 | filters: Vec<nostr::Filter>, | 159 | filters: Vec<nostr::Filter>, |
| 160 | ) -> Result<Vec<Event>> { | 160 | ) -> Result<Vec<Event>> { |
| 161 | println!("fetching from {}", relay.url()); | 161 | println!("fetching from {}", relay.url()); |
| 162 | 162 | if !relay.is_connected().await { | |
| 163 | relay.connect(None).await; | ||
| 164 | } | ||
| 163 | let events = relay | 165 | let events = relay |
| 164 | .get_events_of( | 166 | .get_events_of( |
| 165 | filters, | 167 | filters, |
diff --git a/src/key_handling/users.rs b/src/key_handling/users.rs index 42104f7..caa57e6 100644 --- a/src/key_handling/users.rs +++ b/src/key_handling/users.rs | |||
| @@ -551,7 +551,7 @@ mod tests { | |||
| 551 | nostr::event::EventBuilder::new( | 551 | nostr::event::EventBuilder::new( |
| 552 | nostr::Kind::RelayList, | 552 | nostr::Kind::RelayList, |
| 553 | "", | 553 | "", |
| 554 | &[ | 554 | [ |
| 555 | nostr::Tag::RelayMetadata( | 555 | nostr::Tag::RelayMetadata( |
| 556 | "wss://fredswrite1.relay".into(), | 556 | "wss://fredswrite1.relay".into(), |
| 557 | Some(nostr::RelayMetadata::Write), | 557 | Some(nostr::RelayMetadata::Write), |
| @@ -571,7 +571,7 @@ mod tests { | |||
| 571 | nostr::event::EventBuilder::new( | 571 | nostr::event::EventBuilder::new( |
| 572 | nostr::Kind::RelayList, | 572 | nostr::Kind::RelayList, |
| 573 | "", | 573 | "", |
| 574 | &[ | 574 | [ |
| 575 | nostr::Tag::RelayMetadata( | 575 | nostr::Tag::RelayMetadata( |
| 576 | "wss://carolswrite1.relay".into(), | 576 | "wss://carolswrite1.relay".into(), |
| 577 | Some(nostr::RelayMetadata::Write), | 577 | Some(nostr::RelayMetadata::Write), |
diff --git a/src/repo_ref.rs b/src/repo_ref.rs index d12c681..22236f7 100644 --- a/src/repo_ref.rs +++ b/src/repo_ref.rs | |||
| @@ -75,7 +75,7 @@ impl RepoRef { | |||
| 75 | nostr_sdk::EventBuilder::new( | 75 | nostr_sdk::EventBuilder::new( |
| 76 | nostr::event::Kind::Custom(REPO_REF_KIND), | 76 | nostr::event::Kind::Custom(REPO_REF_KIND), |
| 77 | "", | 77 | "", |
| 78 | &[ | 78 | [ |
| 79 | vec![ | 79 | vec![ |
| 80 | Tag::Identifier(self.root_commit.to_string()), | 80 | Tag::Identifier(self.root_commit.to_string()), |
| 81 | Tag::Reference(format!("r-{}", self.root_commit)), | 81 | Tag::Reference(format!("r-{}", self.root_commit)), |
| @@ -90,7 +90,7 @@ impl RepoRef { | |||
| 90 | self.relays.iter().map(|r| Tag::Relay(r.into())).collect(), | 90 | self.relays.iter().map(|r| Tag::Relay(r.into())).collect(), |
| 91 | self.maintainers | 91 | self.maintainers |
| 92 | .iter() | 92 | .iter() |
| 93 | .map(|pk| Tag::PubKey(*pk, None)) | 93 | .map(|pk| Tag::public_key(*pk)) |
| 94 | .collect(), | 94 | .collect(), |
| 95 | // code languages and hashtags | 95 | // code languages and hashtags |
| 96 | ] | 96 | ] |
diff --git a/src/sub_commands/prs/create.rs b/src/sub_commands/prs/create.rs index ced1edd..ad6a61a 100644 --- a/src/sub_commands/prs/create.rs +++ b/src/sub_commands/prs/create.rs | |||
| @@ -329,7 +329,7 @@ pub fn generate_pr_and_patch_events( | |||
| 329 | let pr_event = EventBuilder::new( | 329 | let pr_event = EventBuilder::new( |
| 330 | nostr::event::Kind::Custom(PR_KIND), | 330 | nostr::event::Kind::Custom(PR_KIND), |
| 331 | format!("{title}\r\n\r\n{description}"), | 331 | format!("{title}\r\n\r\n{description}"), |
| 332 | &pr_tags, | 332 | pr_tags, |
| 333 | // TODO: add Repo event as root | 333 | // TODO: add Repo event as root |
| 334 | // TODO: people tag maintainers | 334 | // TODO: people tag maintainers |
| 335 | // TODO: add relay tags | 335 | // TODO: add relay tags |
| @@ -364,15 +364,15 @@ pub fn generate_patch_event( | |||
| 364 | git_repo | 364 | git_repo |
| 365 | .make_patch_from_commit(commit) | 365 | .make_patch_from_commit(commit) |
| 366 | .context(format!("cannot make patch for commit {commit}"))?, | 366 | .context(format!("cannot make patch for commit {commit}"))?, |
| 367 | &[ | 367 | [ |
| 368 | Tag::Reference(format!("r-{root_commit}")), | 368 | Tag::Reference(format!("r-{root_commit}")), |
| 369 | Tag::Reference(commit.to_string()), | 369 | Tag::Reference(commit.to_string()), |
| 370 | Tag::Reference(commit_parent.to_string()), | 370 | Tag::Reference(commit_parent.to_string()), |
| 371 | Tag::Event( | 371 | Tag::Event { |
| 372 | pr_event_id, | 372 | event_id: pr_event_id, |
| 373 | None, // TODO: add relay | 373 | relay_url: None, // TODO: add relay |
| 374 | Some(Marker::Root), | 374 | marker: Some(Marker::Root), |
| 375 | ), | 375 | }, |
| 376 | Tag::Generic( | 376 | Tag::Generic( |
| 377 | TagKind::Custom("commit".to_string()), | 377 | TagKind::Custom("commit".to_string()), |
| 378 | vec![commit.to_string()], | 378 | vec![commit.to_string()], |
diff --git a/test_utils/Cargo.toml b/test_utils/Cargo.toml index d4d8132..adb8909 100644 --- a/test_utils/Cargo.toml +++ b/test_utils/Cargo.toml | |||
| @@ -9,7 +9,7 @@ assert_cmd = "2.0.12" | |||
| 9 | dialoguer = "0.10.4" | 9 | dialoguer = "0.10.4" |
| 10 | directories = "5.0.1" | 10 | directories = "5.0.1" |
| 11 | git2 = "0.18.1" | 11 | git2 = "0.18.1" |
| 12 | nostr = "0.25.0" | 12 | nostr = "0.27.0" |
| 13 | once_cell = "1.18.0" | 13 | once_cell = "1.18.0" |
| 14 | rand = "0.8" | 14 | rand = "0.8" |
| 15 | rexpect = { git = "https://github.com/rust-cli/rexpect.git", rev = "9eb61dd" } | 15 | 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 f509039..f3f9dcf 100644 --- a/test_utils/src/lib.rs +++ b/test_utils/src/lib.rs | |||
| @@ -3,7 +3,7 @@ use std::{ffi::OsStr, path::PathBuf}; | |||
| 3 | use anyhow::{ensure, Context, Result}; | 3 | use anyhow::{ensure, Context, Result}; |
| 4 | use dialoguer::theme::{ColorfulTheme, Theme}; | 4 | use dialoguer::theme::{ColorfulTheme, Theme}; |
| 5 | use directories::ProjectDirs; | 5 | use directories::ProjectDirs; |
| 6 | use nostr::{self, prelude::FromSkStr, Tag}; | 6 | use nostr::{self, prelude::FromSkStr, Kind, Tag}; |
| 7 | use once_cell::sync::Lazy; | 7 | use once_cell::sync::Lazy; |
| 8 | use rexpect::session::{Options, PtySession}; | 8 | use rexpect::session::{Options, PtySession}; |
| 9 | use strip_ansi_escapes::strip_str; | 9 | use strip_ansi_escapes::strip_str; |
| @@ -28,10 +28,11 @@ pub static TEST_KEY_1_KEYS: Lazy<nostr::Keys> = | |||
| 28 | Lazy::new(|| nostr::Keys::from_sk_str(TEST_KEY_1_NSEC).unwrap()); | 28 | Lazy::new(|| nostr::Keys::from_sk_str(TEST_KEY_1_NSEC).unwrap()); |
| 29 | 29 | ||
| 30 | pub fn generate_test_key_1_metadata_event(name: &str) -> nostr::Event { | 30 | pub fn generate_test_key_1_metadata_event(name: &str) -> nostr::Event { |
| 31 | nostr::event::EventBuilder::set_metadata(nostr::Metadata::new().name(name)) | 31 | nostr::event::EventBuilder::metadata(&nostr::Metadata::new().name(name)) |
| 32 | .to_event(&TEST_KEY_1_KEYS) | 32 | .to_event(&TEST_KEY_1_KEYS) |
| 33 | .unwrap() | 33 | .unwrap() |
| 34 | } | 34 | } |
| 35 | |||
| 35 | pub fn generate_test_key_1_metadata_event_old(name: &str) -> nostr::Event { | 36 | pub fn generate_test_key_1_metadata_event_old(name: &str) -> nostr::Event { |
| 36 | make_event_old_or_change_user( | 37 | make_event_old_or_change_user( |
| 37 | generate_test_key_1_metadata_event(name), | 38 | generate_test_key_1_metadata_event(name), |
| @@ -40,11 +41,17 @@ pub fn generate_test_key_1_metadata_event_old(name: &str) -> nostr::Event { | |||
| 40 | ) | 41 | ) |
| 41 | } | 42 | } |
| 42 | 43 | ||
| 44 | pub fn generate_test_key_1_kind_event(kind: Kind) -> nostr::Event { | ||
| 45 | nostr::event::EventBuilder::new(kind, "", []) | ||
| 46 | .to_event(&TEST_KEY_1_KEYS) | ||
| 47 | .unwrap() | ||
| 48 | } | ||
| 49 | |||
| 43 | pub fn generate_test_key_1_relay_list_event() -> nostr::Event { | 50 | pub fn generate_test_key_1_relay_list_event() -> nostr::Event { |
| 44 | nostr::event::EventBuilder::new( | 51 | nostr::event::EventBuilder::new( |
| 45 | nostr::Kind::RelayList, | 52 | nostr::Kind::RelayList, |
| 46 | "", | 53 | "", |
| 47 | &[ | 54 | [ |
| 48 | nostr::Tag::RelayMetadata( | 55 | nostr::Tag::RelayMetadata( |
| 49 | "ws://localhost:8053".into(), | 56 | "ws://localhost:8053".into(), |
| 50 | Some(nostr::RelayMetadata::Write), | 57 | Some(nostr::RelayMetadata::Write), |
| @@ -64,7 +71,7 @@ pub fn generate_test_key_1_relay_list_event_same_as_fallback() -> nostr::Event { | |||
| 64 | nostr::event::EventBuilder::new( | 71 | nostr::event::EventBuilder::new( |
| 65 | nostr::Kind::RelayList, | 72 | nostr::Kind::RelayList, |
| 66 | "", | 73 | "", |
| 67 | &[ | 74 | [ |
| 68 | nostr::Tag::RelayMetadata( | 75 | nostr::Tag::RelayMetadata( |
| 69 | "ws://localhost:8051".into(), | 76 | "ws://localhost:8051".into(), |
| 70 | Some(nostr::RelayMetadata::Write), | 77 | Some(nostr::RelayMetadata::Write), |
| @@ -90,7 +97,7 @@ pub static TEST_KEY_2_KEYS: Lazy<nostr::Keys> = | |||
| 90 | Lazy::new(|| nostr::Keys::from_sk_str(TEST_KEY_2_NSEC).unwrap()); | 97 | Lazy::new(|| nostr::Keys::from_sk_str(TEST_KEY_2_NSEC).unwrap()); |
| 91 | 98 | ||
| 92 | pub fn generate_test_key_2_metadata_event(name: &str) -> nostr::Event { | 99 | pub fn generate_test_key_2_metadata_event(name: &str) -> nostr::Event { |
| 93 | nostr::event::EventBuilder::set_metadata(nostr::Metadata::new().name(name)) | 100 | nostr::event::EventBuilder::metadata(&nostr::Metadata::new().name(name)) |
| 94 | .to_event(&TEST_KEY_2_KEYS) | 101 | .to_event(&TEST_KEY_2_KEYS) |
| 95 | .unwrap() | 102 | .unwrap() |
| 96 | } | 103 | } |
| @@ -106,13 +113,12 @@ pub fn make_event_old_or_change_user( | |||
| 106 | keys: &nostr::Keys, | 113 | keys: &nostr::Keys, |
| 107 | how_old_in_secs: u64, | 114 | how_old_in_secs: u64, |
| 108 | ) -> nostr::Event { | 115 | ) -> nostr::Event { |
| 109 | let mut unsigned = nostr::event::EventBuilder::new(event.kind, event.content, &event.tags) | 116 | let mut unsigned = |
| 110 | .to_unsigned_event(keys.public_key()); | 117 | nostr::event::EventBuilder::new(event.kind, event.content.clone(), event.tags.clone()) |
| 118 | .to_unsigned_event(keys.public_key()); | ||
| 111 | 119 | ||
| 112 | unsigned.created_at = nostr::types::Timestamp::try_from( | 120 | unsigned.created_at = |
| 113 | nostr::types::Timestamp::now().as_u64() - how_old_in_secs, | 121 | nostr::types::Timestamp::from(nostr::types::Timestamp::now().as_u64() - how_old_in_secs); |
| 114 | ) | ||
| 115 | .unwrap(); | ||
| 116 | unsigned.id = nostr::EventId::new( | 122 | unsigned.id = nostr::EventId::new( |
| 117 | &keys.public_key(), | 123 | &keys.public_key(), |
| 118 | unsigned.created_at, | 124 | unsigned.created_at, |
| @@ -130,15 +136,15 @@ pub fn generate_repo_ref_event() -> nostr::Event { | |||
| 130 | nostr::event::EventBuilder::new( | 136 | nostr::event::EventBuilder::new( |
| 131 | nostr::Kind::Custom(REPOSITORY_KIND), | 137 | nostr::Kind::Custom(REPOSITORY_KIND), |
| 132 | "", | 138 | "", |
| 133 | &[ | 139 | [ |
| 134 | Tag::Identifier(root_commit.to_string()), | 140 | Tag::Identifier(root_commit.to_string()), |
| 135 | Tag::Reference(format!("r-{}", root_commit)), | 141 | Tag::Reference(format!("r-{}", root_commit)), |
| 136 | Tag::Name("example name".to_string()), | 142 | Tag::Name("example name".to_string()), |
| 137 | Tag::Description("example description".to_string()), | 143 | Tag::Description("example description".to_string()), |
| 138 | Tag::Relay("ws://localhost:8055".into()), | 144 | Tag::Relay("ws://localhost:8055".into()), |
| 139 | Tag::Relay("ws://localhost:8056".into()), | 145 | Tag::Relay("ws://localhost:8056".into()), |
| 140 | Tag::PubKey(TEST_KEY_1_KEYS.public_key(), None), | 146 | Tag::public_key(TEST_KEY_1_KEYS.public_key()), |
| 141 | Tag::PubKey(TEST_KEY_2_KEYS.public_key(), None), | 147 | Tag::public_key(TEST_KEY_2_KEYS.public_key()), |
| 142 | ], | 148 | ], |
| 143 | ) | 149 | ) |
| 144 | .to_event(&TEST_KEY_1_KEYS) | 150 | .to_event(&TEST_KEY_1_KEYS) |
diff --git a/test_utils/src/relay.rs b/test_utils/src/relay.rs index 50f6337..e47ab5d 100644 --- a/test_utils/src/relay.rs +++ b/test_utils/src/relay.rs | |||
| @@ -96,18 +96,25 @@ impl<'a> Relay<'a> { | |||
| 96 | &self, | 96 | &self, |
| 97 | client_id: u64, | 97 | client_id: u64, |
| 98 | subscription_id: &nostr::SubscriptionId, | 98 | subscription_id: &nostr::SubscriptionId, |
| 99 | filters: &[nostr::Filter], | 99 | // TODO: enable filters |
| 100 | _filters: &[nostr::Filter], | ||
| 100 | ) -> Result<bool> { | 101 | ) -> Result<bool> { |
| 101 | // let t: Vec<nostr::Kind> = self.events.iter().map(|e| e.kind).collect(); | 102 | // let t: Vec<nostr::Kind> = self.events.iter().map(|e| e.kind).collect(); |
| 102 | // .filter(|e| filters.iter().any(|filter| filter.match_event(e))) | 103 | // .filter(|e| filters.iter().any(|filter| filter.match_event(e))) |
| 103 | // println!("letsgo{:?}", t); | 104 | // println!("letsgo{:?}", t); |
| 105 | |||
| 104 | self.respond_events( | 106 | self.respond_events( |
| 105 | client_id, | 107 | client_id, |
| 106 | subscription_id, | 108 | subscription_id, |
| 107 | &self | 109 | &self |
| 108 | .events | 110 | .events |
| 109 | .iter() | 111 | .iter() |
| 110 | .filter(|e| filters.iter().any(|filter| filter.match_event(e))) | 112 | // FIXME: |
| 113 | // `filter.match_events` does not exist anymore | ||
| 114 | // it has been moved to `nostr_database_::FilterIndex` | ||
| 115 | // but it's private now | ||
| 116 | // .filter(|e| filters.iter().any(|filter|filter.match_event(e))) | ||
| 117 | .filter(|_| true) | ||
| 111 | .cloned() | 118 | .cloned() |
| 112 | .collect(), | 119 | .collect(), |
| 113 | ) | 120 | ) |
diff --git a/tests/login.rs b/tests/login.rs index e6ead6b..4141a59 100644 --- a/tests/login.rs +++ b/tests/login.rs | |||
| @@ -207,8 +207,7 @@ mod with_relays { | |||
| 207 | fn when_some_relays_return_other_event_kinds() -> Result<()> { | 207 | fn when_some_relays_return_other_event_kinds() -> Result<()> { |
| 208 | futures::executor::block_on(run_test_displays_correct_name( | 208 | futures::executor::block_on(run_test_displays_correct_name( |
| 209 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 209 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 210 | let mut event = generate_test_key_1_metadata_event("Fred"); | 210 | let event = generate_test_key_1_kind_event(nostr::Kind::TextNote); |
| 211 | event.kind = nostr::Kind::TextNote; | ||
| 212 | relay.respond_events( | 211 | relay.respond_events( |
| 213 | client_id, | 212 | client_id, |
| 214 | &subscription_id, | 213 | &subscription_id, |