commit c8ab21111ee130d72162df114ed97f835893046d parent 248393cbd82253535880a03c8b7bb0a8851e1328 Author: triesap <tyson@radroots.org> Date: Sat, 11 Apr 2026 21:20:39 +0000 publish: remove internal test fixture edges Diffstat:
48 files changed, 745 insertions(+), 51 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock @@ -2321,7 +2321,6 @@ dependencies = [ "nostr", "radroots_core", "radroots_events", - "radroots_test_fixtures", "serde", "serde_json", ] @@ -2365,7 +2364,6 @@ dependencies = [ "radroots_events", "radroots_runtime", "radroots_runtime_paths", - "radroots_test_fixtures", "secrecy", "serde", "serde_json", @@ -2427,7 +2425,6 @@ dependencies = [ "radroots_events", "radroots_events_codec", "radroots_identity", - "radroots_test_fixtures", "reqwest", "serde", "serde_json", @@ -2444,7 +2441,6 @@ dependencies = [ "radroots_nostr_signer", "radroots_runtime", "radroots_secret_vault", - "radroots_test_fixtures", "serde", "serde_json", "tempfile", @@ -2457,7 +2453,6 @@ name = "radroots_nostr_connect" version = "0.1.0-alpha.2" dependencies = [ "nostr", - "radroots_test_fixtures", "serde", "serde_json", "thiserror 1.0.69", @@ -2473,7 +2468,6 @@ dependencies = [ "nostrdb", "radroots_nostr", "radroots_nostr_runtime", - "radroots_test_fixtures", "serde_json", "tempfile", "thiserror 1.0.69", @@ -2500,7 +2494,6 @@ dependencies = [ "radroots_nostr_connect", "radroots_runtime", "radroots_sql_core", - "radroots_test_fixtures", "serde", "serde_json", "sha2", diff --git a/crates/events_codec/Cargo.toml b/crates/events_codec/Cargo.toml @@ -31,4 +31,3 @@ serde_json = { workspace = true, default-features = false, features = [ nostr = { workspace = true, optional = true } [dev-dependencies] -radroots_test_fixtures = { workspace = true } diff --git a/crates/events_codec/src/coop/list_sets.rs b/crates/events_codec/src/coop/list_sets.rs @@ -182,7 +182,7 @@ where #[cfg(test)] mod tests { use super::*; - use radroots_test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; + use crate::test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; #[test] fn coop_list_set_id_validates_coop_id() { diff --git a/crates/events_codec/src/document/encode.rs b/crates/events_codec/src/document/encode.rs @@ -90,8 +90,8 @@ pub fn to_wire_parts_with_kind( #[cfg(test)] mod tests { use super::*; + use crate::test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; use radroots_events::document::RadrootsDocumentSubject; - use radroots_test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; fn sample_document_address() -> String { format!("30340:{FIXTURE_ALICE_PUBLIC_KEY_HEX}:AAAAAAAAAAAAAAAAAAAAAA") diff --git a/crates/events_codec/src/farm/list_sets.rs b/crates/events_codec/src/farm/list_sets.rs @@ -215,7 +215,7 @@ where #[cfg(test)] mod tests { use super::*; - use radroots_test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; + use crate::test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; #[test] fn farm_list_set_id_validates_farm_id() { diff --git a/crates/events_codec/src/lib.rs b/crates/events_codec/src/lib.rs @@ -34,6 +34,9 @@ pub mod list_set; pub mod listing; pub mod trade; +#[cfg(test)] +mod test_fixtures; + #[cfg(feature = "serde_json")] pub mod relay_document; diff --git a/crates/events_codec/src/listing/tags.rs b/crates/events_codec/src/listing/tags.rs @@ -617,6 +617,9 @@ mod tests { use super::*; use core::str::FromStr; + use crate::test_fixtures::{ + CDN_PRIMARY_HTTPS, FIXTURE_ALICE_NPUB, FIXTURE_ALICE_PUBLIC_KEY_HEX, + }; use radroots_core::{ RadrootsCoreCurrency, RadrootsCoreDecimal, RadrootsCoreDiscountScope, RadrootsCoreDiscountThreshold, RadrootsCoreDiscountValue, RadrootsCoreQuantity, @@ -625,9 +628,6 @@ mod tests { use radroots_events::listing::{ RadrootsListingImageSize, RadrootsListingProduct, RadrootsListingStatus, }; - use radroots_test_fixtures::{ - CDN_PRIMARY_HTTPS, FIXTURE_ALICE_NPUB, FIXTURE_ALICE_PUBLIC_KEY_HEX, - }; const TEST_NPUB: &str = FIXTURE_ALICE_NPUB; const TEST_PUBKEY_HEX: &str = FIXTURE_ALICE_PUBLIC_KEY_HEX; diff --git a/crates/events_codec/src/message/tags.rs b/crates/events_codec/src/message/tags.rs @@ -155,8 +155,8 @@ pub(crate) fn parse_subject_tag(tags: &[Vec<String>]) -> Result<Option<String>, #[cfg(test)] mod tests { use super::*; + use crate::test_fixtures::RELAY_PRIMARY_WSS; use radroots_events::{RadrootsNostrEventPtr, message::RadrootsMessageRecipient}; - use radroots_test_fixtures::RELAY_PRIMARY_WSS; #[test] fn parse_recipients_rejects_missing_p_tags() { diff --git a/crates/events_codec/src/resource_area/list_sets.rs b/crates/events_codec/src/resource_area/list_sets.rs @@ -158,7 +158,7 @@ where #[cfg(test)] mod tests { use super::*; - use radroots_test_fixtures::{FIXTURE_ALICE_PUBLIC_KEY_HEX, FIXTURE_BOB_PUBLIC_KEY_HEX}; + use crate::test_fixtures::{FIXTURE_ALICE_PUBLIC_KEY_HEX, FIXTURE_BOB_PUBLIC_KEY_HEX}; #[test] fn resource_list_set_id_validates_area_id() { diff --git a/crates/events_codec/src/resource_cap/encode.rs b/crates/events_codec/src/resource_cap/encode.rs @@ -105,10 +105,10 @@ pub fn to_wire_parts_with_kind( #[cfg(test)] mod tests { use super::*; + use crate::test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; use radroots_core::{RadrootsCoreDecimal, RadrootsCoreQuantity, RadrootsCoreUnit}; use radroots_events::resource_area::RadrootsResourceAreaRef; use radroots_events::resource_cap::RadrootsResourceHarvestProduct; - use radroots_test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; fn sample_cap_with_category(category: Option<&str>) -> RadrootsResourceHarvestCap { RadrootsResourceHarvestCap { diff --git a/crates/events_codec/src/test_fixtures.rs b/crates/events_codec/src/test_fixtures.rs @@ -0,0 +1,107 @@ +#![forbid(unsafe_code)] +#![allow(dead_code)] + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct ApprovedFixtureIdentity { + pub label: &'static str, + pub username: &'static str, + pub email: &'static str, + pub secret_key_hex: &'static str, + pub public_key_hex: &'static str, + pub nsec: &'static str, + pub npub: &'static str, +} + +pub const APPROVED_FIXTURE_NAMESPACE: &str = "radroots-approved-fixture-v1"; + +pub const FIXTURE_ALICE_LABEL: &str = "fixture_alice"; +pub const FIXTURE_ALICE_USERNAME: &str = "fixture_alice"; +pub const FIXTURE_ALICE_EMAIL: &str = "fixture_alice@fixtures.test"; +pub const FIXTURE_ALICE_SECRET_KEY_HEX: &str = + "10c5304d6c9ae3a1a16f7860f1cc8f5e3a76225a2663b3a989a0d775919b7df5"; +pub const FIXTURE_ALICE_PUBLIC_KEY_HEX: &str = + "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"; +pub const FIXTURE_ALICE_NSEC: &str = + "nsec1zrznqntvnt36rgt00ps0rny0tca8vgj6ye3m82vf5rthtyvm0h6syu7drz"; +pub const FIXTURE_ALICE_NPUB: &str = + "npub1tp2ez55a5zatxxemrv0eses3ea05xhw2snuh3jy7azjqejn3q00s3vy5a9"; +pub const FIXTURE_ALICE: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_ALICE_LABEL, + username: FIXTURE_ALICE_USERNAME, + email: FIXTURE_ALICE_EMAIL, + secret_key_hex: FIXTURE_ALICE_SECRET_KEY_HEX, + public_key_hex: FIXTURE_ALICE_PUBLIC_KEY_HEX, + nsec: FIXTURE_ALICE_NSEC, + npub: FIXTURE_ALICE_NPUB, +}; + +pub const FIXTURE_BOB_LABEL: &str = "fixture_bob"; +pub const FIXTURE_BOB_USERNAME: &str = "fixture_bob"; +pub const FIXTURE_BOB_EMAIL: &str = "fixture_bob@fixtures.test"; +pub const FIXTURE_BOB_SECRET_KEY_HEX: &str = + "59392e9068f66431b12f70218fb61281cb6b433d7f27c55d61f1a63fe1a96ff8"; +pub const FIXTURE_BOB_PUBLIC_KEY_HEX: &str = + "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"; +pub const FIXTURE_BOB_NSEC: &str = + "nsec1tyujayrg7ejrrvf0wqscldsjs89kksea0unu2htp7xnrlcdfdluqrjya9h"; +pub const FIXTURE_BOB_NPUB: &str = + "npub1uqnxu08mp55gd7guw06ls68nhxp8xuf7tlxe0sypvcl42x9ykwhsd55k2g"; +pub const FIXTURE_BOB: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_BOB_LABEL, + username: FIXTURE_BOB_USERNAME, + email: FIXTURE_BOB_EMAIL, + secret_key_hex: FIXTURE_BOB_SECRET_KEY_HEX, + public_key_hex: FIXTURE_BOB_PUBLIC_KEY_HEX, + nsec: FIXTURE_BOB_NSEC, + npub: FIXTURE_BOB_NPUB, +}; + +pub const FIXTURE_CAROL_LABEL: &str = "fixture_carol"; +pub const FIXTURE_CAROL_USERNAME: &str = "fixture_carol"; +pub const FIXTURE_CAROL_EMAIL: &str = "fixture_carol@fixtures.test"; +pub const FIXTURE_CAROL_SECRET_KEY_HEX: &str = + "4d6c20fdd86857de77ff5cfa5c545751ba2efd126e0b6642dae9764d782d6509"; +pub const FIXTURE_CAROL_PUBLIC_KEY_HEX: &str = + "1952b8c6943898bceffcff1b7699c4a775a4d13b4a9ba0096ba26ef04492bb1c"; +pub const FIXTURE_CAROL_NSEC: &str = + "nsec1f4kzplwcdptaualltna9c4zh2xazalgjdc9kvsk6a9my67pdv5ys2pqkaj"; +pub const FIXTURE_CAROL_NPUB: &str = + "npub1r9ft33558zvtemluludhdxwy5a66f5fmf2d6qztt5fh0q3yjhvwqgzmkl6"; +pub const FIXTURE_CAROL: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_CAROL_LABEL, + username: FIXTURE_CAROL_USERNAME, + email: FIXTURE_CAROL_EMAIL, + secret_key_hex: FIXTURE_CAROL_SECRET_KEY_HEX, + public_key_hex: FIXTURE_CAROL_PUBLIC_KEY_HEX, + nsec: FIXTURE_CAROL_NSEC, + npub: FIXTURE_CAROL_NPUB, +}; + +pub const FIXTURE_DIEGO_LABEL: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_USERNAME: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_EMAIL: &str = "fixture_diego@fixtures.test"; +pub const FIXTURE_DIEGO_SECRET_KEY_HEX: &str = + "9de56c1fdfce9ab00af85b3d7003c1d15cffb84cdf303c3a83c1a3fb1a2d0db0"; +pub const FIXTURE_DIEGO_PUBLIC_KEY_HEX: &str = + "5d3eab6e78eb7e467a9e196a63456c9fafb93fb88b7052b83229870889923aa4"; +pub const FIXTURE_DIEGO_NSEC: &str = + "nsec1nhjkc87le6dtqzhctv7hqq7p69w0lwzvmucrcw5rcx3lkx3dpkcqkrmgp5"; +pub const FIXTURE_DIEGO_NPUB: &str = + "npub1t5l2kmncadlyv757r94xx3tvn7hmj0ac3dc99wpj9xrs3zvj82jqwwcglm"; +pub const FIXTURE_DIEGO: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_DIEGO_LABEL, + username: FIXTURE_DIEGO_USERNAME, + email: FIXTURE_DIEGO_EMAIL, + secret_key_hex: FIXTURE_DIEGO_SECRET_KEY_HEX, + public_key_hex: FIXTURE_DIEGO_PUBLIC_KEY_HEX, + nsec: FIXTURE_DIEGO_NSEC, + npub: FIXTURE_DIEGO_NPUB, +}; + +pub const RELAY_PRIMARY_WSS: &str = "wss://relay.example.com"; +pub const RELAY_SECONDARY_WSS: &str = "wss://relay-2.example.com"; +pub const RELAY_TERTIARY_WSS: &str = "wss://relay-3.example.com"; + +pub const APP_PRIMARY_HTTPS: &str = "https://app.example.com"; +pub const API_PRIMARY_HTTPS: &str = "https://api.example.com"; +pub const CDN_PRIMARY_HTTPS: &str = "https://cdn.example.com"; diff --git a/crates/events_codec/tests/codec_error_job.rs b/crates/events_codec/tests/codec_error_job.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use std::error::Error as _; use radroots_events_codec::error::{EventEncodeError, EventParseError}; @@ -7,11 +10,11 @@ use radroots_events_codec::job::encode::{ }; use radroots_events_codec::job::error::JobParseError; use radroots_events_codec::profile::error::ProfileEncodeError; -use radroots_test_fixtures::{FIXTURE_ALICE_PUBLIC_KEY_HEX, RELAY_PRIMARY_WSS}; #[cfg(feature = "serde_json")] use serde::Serialize; #[cfg(feature = "serde_json")] use serde::ser::{Error as _, Serializer}; +use test_fixtures::{FIXTURE_ALICE_PUBLIC_KEY_HEX, RELAY_PRIMARY_WSS}; #[test] fn parse_error_display_and_source_cover_variants() { diff --git a/crates/events_codec/tests/domain_encode_non_serde.rs b/crates/events_codec/tests/domain_encode_non_serde.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use std::str::FromStr; use radroots_core::{ @@ -39,7 +42,7 @@ use radroots_events_codec::resource_area::list_sets::{ resource_area_stewards_list_set, }; use radroots_events_codec::resource_cap::encode::resource_harvest_cap_build_tags; -use radroots_test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; +use test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; const VALID_PUBKEY: &str = FIXTURE_ALICE_PUBLIC_KEY_HEX; const VALID_FARM_D_TAG: &str = "AAAAAAAAAAAAAAAAAAAAAA"; diff --git a/crates/events_codec/tests/event_ref.rs b/crates/events_codec/tests/event_ref.rs @@ -1,4 +1,6 @@ mod common; +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; use radroots_events::kinds::KIND_POST; use radroots_events_codec::error::EventParseError; @@ -6,7 +8,7 @@ use radroots_events_codec::event_ref::{ build_event_ref_tag, find_event_ref_tag, parse_event_ref_tag, parse_nip10_ref_tags, push_nip10_ref_tags, }; -use radroots_test_fixtures::{RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS, RELAY_TERTIARY_WSS}; +use test_fixtures::{RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS, RELAY_TERTIARY_WSS}; #[test] fn build_and_parse_roundtrip_with_d_tag_and_relays() { diff --git a/crates/events_codec/tests/follow.rs b/crates/events_codec/tests/follow.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::{ follow::{RadrootsFollow, RadrootsFollowProfile}, kinds::{KIND_FOLLOW, KIND_POST}, @@ -9,7 +12,7 @@ use radroots_events_codec::follow::encode::{ FollowMutation, follow_apply, follow_to_wire_parts_after, to_wire_parts, to_wire_parts_with_kind, }; -use radroots_test_fixtures::{RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; +use test_fixtures::{RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; #[test] fn follow_to_wire_parts_builds_p_tags() { diff --git a/crates/events_codec/tests/gift_wrap.rs b/crates/events_codec/tests/gift_wrap.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::gift_wrap::{RadrootsGiftWrap, RadrootsGiftWrapRecipient}; use radroots_events::kinds::{KIND_GIFT_WRAP, KIND_MESSAGE}; @@ -8,7 +11,7 @@ use radroots_events_codec::gift_wrap::decode::{ use radroots_events_codec::gift_wrap::encode::{ gift_wrap_build_tags, to_wire_parts, to_wire_parts_with_kind, }; -use radroots_test_fixtures::RELAY_PRIMARY_WSS; +use test_fixtures::RELAY_PRIMARY_WSS; fn sample_gift_wrap() -> RadrootsGiftWrap { RadrootsGiftWrap { diff --git a/crates/events_codec/tests/job_request.rs b/crates/events_codec/tests/job_request.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::job::JobInputType; use radroots_events::job_request::{RadrootsJobInput, RadrootsJobParam, RadrootsJobRequest}; use radroots_events::kinds::{KIND_JOB_FEEDBACK, KIND_JOB_REQUEST_MIN, KIND_JOB_RESULT_MIN}; @@ -5,7 +8,7 @@ use radroots_events_codec::job::encode::JobEncodeError; use radroots_events_codec::job::error::JobParseError; use radroots_events_codec::job::request::decode::{job_request_from_tags, parsed_from_event}; use radroots_events_codec::job::request::encode::to_wire_parts; -use radroots_test_fixtures::{APP_PRIMARY_HTTPS, RELAY_PRIMARY_WSS}; +use test_fixtures::{APP_PRIMARY_HTTPS, RELAY_PRIMARY_WSS}; fn sample_request() -> RadrootsJobRequest { RadrootsJobRequest { diff --git a/crates/events_codec/tests/job_result.rs b/crates/events_codec/tests/job_result.rs @@ -1,4 +1,6 @@ mod common; +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; use radroots_events::job::{JobInputType, JobPaymentRequest}; use radroots_events::job_request::RadrootsJobInput; @@ -8,7 +10,7 @@ use radroots_events_codec::job::encode::JobEncodeError; use radroots_events_codec::job::error::JobParseError; use radroots_events_codec::job::result::decode::{job_result_from_tags, parsed_from_event}; use radroots_events_codec::job::result::encode::to_wire_parts; -use radroots_test_fixtures::{APP_PRIMARY_HTTPS, RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; +use test_fixtures::{APP_PRIMARY_HTTPS, RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; fn sample_result() -> RadrootsJobResult { RadrootsJobResult { diff --git a/crates/events_codec/tests/job_traits.rs b/crates/events_codec/tests/job_traits.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::RadrootsNostrEvent; use radroots_events::job::{JobFeedbackStatus, JobInputType, JobPaymentRequest}; use radroots_events::job_feedback::RadrootsJobFeedback; @@ -8,7 +11,7 @@ use radroots_events_codec::job::feedback::encode::to_wire_parts as to_feedback_w use radroots_events_codec::job::request::encode::to_wire_parts as to_request_wire_parts; use radroots_events_codec::job::result::encode::to_wire_parts as to_result_wire_parts; use radroots_events_codec::job::traits::{BorrowedEventAdapter, JobEventLike}; -use radroots_test_fixtures::{FIXTURE_ALICE_PUBLIC_KEY_HEX, RELAY_PRIMARY_WSS}; +use test_fixtures::{FIXTURE_ALICE_PUBLIC_KEY_HEX, RELAY_PRIMARY_WSS}; fn sample_request() -> RadrootsJobRequest { RadrootsJobRequest { diff --git a/crates/events_codec/tests/job_util.rs b/crates/events_codec/tests/job_util.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::job::{JobFeedbackStatus, JobInputType}; use radroots_events_codec::job::error::JobParseError; use radroots_events_codec::job::util::{ @@ -5,7 +8,7 @@ use radroots_events_codec::job::util::{ parse_amount_tag_sat, parse_bid_tag_sat, parse_bool_encrypted, parse_i_tags, parse_params, push_amount_tag_msat, push_bid_tag_sat, }; -use radroots_test_fixtures::{APP_PRIMARY_HTTPS, RELAY_PRIMARY_WSS}; +use test_fixtures::{APP_PRIMARY_HTTPS, RELAY_PRIMARY_WSS}; #[test] fn parse_bool_encrypted_detects_tag() { diff --git a/crates/events_codec/tests/list_set.rs b/crates/events_codec/tests/list_set.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::{ kinds::{KIND_LIST_SET_FOLLOW, KIND_POST}, list::RadrootsListEntry, @@ -8,7 +11,7 @@ use radroots_events_codec::list_set::decode::{ data_from_event, list_set_from_tags, parsed_from_event, }; use radroots_events_codec::list_set::encode::{list_set_build_tags, to_wire_parts_with_kind}; -use radroots_test_fixtures::APP_PRIMARY_HTTPS; +use test_fixtures::APP_PRIMARY_HTTPS; fn app_url(path: &str) -> String { format!("{APP_PRIMARY_HTTPS}/{path}") diff --git a/crates/events_codec/tests/message.rs b/crates/events_codec/tests/message.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::{ RadrootsNostrEventPtr, kinds::{KIND_MESSAGE, KIND_POST}, @@ -8,7 +11,7 @@ use radroots_events_codec::message::decode::{ data_from_event, message_from_tags, parsed_from_event, }; use radroots_events_codec::message::encode::{message_build_tags, to_wire_parts}; -use radroots_test_fixtures::{RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; +use test_fixtures::{RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; #[test] fn message_build_tags_requires_recipients() { diff --git a/crates/events_codec/tests/message_file.rs b/crates/events_codec/tests/message_file.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::RadrootsNostrEventPtr; use radroots_events::kinds::{KIND_MESSAGE, KIND_MESSAGE_FILE}; use radroots_events::message::RadrootsMessageRecipient; @@ -10,7 +13,7 @@ use radroots_events_codec::message_file::decode::{ use radroots_events_codec::message_file::encode::{ message_file_build_tags, to_wire_parts, to_wire_parts_with_kind, }; -use radroots_test_fixtures::{CDN_PRIMARY_HTTPS, RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; +use test_fixtures::{CDN_PRIMARY_HTTPS, RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS}; fn file_url(path: &str) -> String { format!("{CDN_PRIMARY_HTTPS}/{path}") diff --git a/crates/events_codec/tests/structured_decode.rs b/crates/events_codec/tests/structured_decode.rs @@ -1,5 +1,8 @@ #![cfg(feature = "serde_json")] +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_core::{RadrootsCoreDecimal, RadrootsCoreQuantity, RadrootsCoreUnit}; use radroots_events::coop::RadrootsCoop; use radroots_events::document::{RadrootsDocument, RadrootsDocumentSubject}; @@ -42,7 +45,7 @@ use radroots_events_codec::resource_cap::decode::{ data_from_event as resource_cap_metadata_from_event, parsed_from_event as resource_cap_index_from_event, resource_harvest_cap_from_event, }; -use radroots_test_fixtures::{FIXTURE_ALICE_NPUB, FIXTURE_ALICE_PUBLIC_KEY_HEX}; +use test_fixtures::{FIXTURE_ALICE_NPUB, FIXTURE_ALICE_PUBLIC_KEY_HEX}; const TEST_NPUB: &str = FIXTURE_ALICE_NPUB; const TEST_PUBKEY_HEX: &str = FIXTURE_ALICE_PUBLIC_KEY_HEX; diff --git a/crates/events_codec/tests/structured_encode_default.rs b/crates/events_codec/tests/structured_encode_default.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_core::{ RadrootsCoreCurrency, RadrootsCoreDecimal, RadrootsCoreMoney, RadrootsCoreQuantity, RadrootsCoreQuantityPrice, RadrootsCoreUnit, @@ -39,7 +42,7 @@ use radroots_events_codec::resource_area::list_sets::{ resource_area_stewards_list_set, }; use radroots_events_codec::resource_cap::encode::resource_harvest_cap_build_tags; -use radroots_test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; +use test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; const TEST_PUBKEY_HEX: &str = FIXTURE_ALICE_PUBLIC_KEY_HEX; diff --git a/crates/events_codec/tests/tag_builders.rs b/crates/events_codec/tests/tag_builders.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_core::{ RadrootsCoreCurrency, RadrootsCoreDecimal, RadrootsCoreDiscount, RadrootsCoreDiscountScope, RadrootsCoreDiscountThreshold, RadrootsCoreDiscountValue, RadrootsCoreMoney, @@ -46,7 +49,7 @@ use radroots_events_codec::job::encode::JobEncodeError; use radroots_events_codec::listing::encode::listing_build_tags; use radroots_events_codec::listing::tags::{ListingTagOptions, listing_tags_with_options}; use radroots_events_codec::tag_builders::RadrootsEventTagBuilder; -use radroots_test_fixtures::{ +use test_fixtures::{ CDN_PRIMARY_HTTPS, FIXTURE_ALICE_NPUB, FIXTURE_ALICE_PUBLIC_KEY_HEX, RELAY_PRIMARY_WSS, }; diff --git a/crates/identity/Cargo.toml b/crates/identity/Cargo.toml @@ -39,5 +39,4 @@ ts-rs = { workspace = true, optional = true } zeroize = { workspace = true, optional = true } [dev-dependencies] -radroots_test_fixtures = { workspace = true } tempfile = { workspace = true } diff --git a/crates/identity/src/test_fixtures.rs b/crates/identity/src/test_fixtures.rs @@ -0,0 +1,107 @@ +#![forbid(unsafe_code)] +#![allow(dead_code)] + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct ApprovedFixtureIdentity { + pub label: &'static str, + pub username: &'static str, + pub email: &'static str, + pub secret_key_hex: &'static str, + pub public_key_hex: &'static str, + pub nsec: &'static str, + pub npub: &'static str, +} + +pub const APPROVED_FIXTURE_NAMESPACE: &str = "radroots-approved-fixture-v1"; + +pub const FIXTURE_ALICE_LABEL: &str = "fixture_alice"; +pub const FIXTURE_ALICE_USERNAME: &str = "fixture_alice"; +pub const FIXTURE_ALICE_EMAIL: &str = "fixture_alice@fixtures.test"; +pub const FIXTURE_ALICE_SECRET_KEY_HEX: &str = + "10c5304d6c9ae3a1a16f7860f1cc8f5e3a76225a2663b3a989a0d775919b7df5"; +pub const FIXTURE_ALICE_PUBLIC_KEY_HEX: &str = + "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"; +pub const FIXTURE_ALICE_NSEC: &str = + "nsec1zrznqntvnt36rgt00ps0rny0tca8vgj6ye3m82vf5rthtyvm0h6syu7drz"; +pub const FIXTURE_ALICE_NPUB: &str = + "npub1tp2ez55a5zatxxemrv0eses3ea05xhw2snuh3jy7azjqejn3q00s3vy5a9"; +pub const FIXTURE_ALICE: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_ALICE_LABEL, + username: FIXTURE_ALICE_USERNAME, + email: FIXTURE_ALICE_EMAIL, + secret_key_hex: FIXTURE_ALICE_SECRET_KEY_HEX, + public_key_hex: FIXTURE_ALICE_PUBLIC_KEY_HEX, + nsec: FIXTURE_ALICE_NSEC, + npub: FIXTURE_ALICE_NPUB, +}; + +pub const FIXTURE_BOB_LABEL: &str = "fixture_bob"; +pub const FIXTURE_BOB_USERNAME: &str = "fixture_bob"; +pub const FIXTURE_BOB_EMAIL: &str = "fixture_bob@fixtures.test"; +pub const FIXTURE_BOB_SECRET_KEY_HEX: &str = + "59392e9068f66431b12f70218fb61281cb6b433d7f27c55d61f1a63fe1a96ff8"; +pub const FIXTURE_BOB_PUBLIC_KEY_HEX: &str = + "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"; +pub const FIXTURE_BOB_NSEC: &str = + "nsec1tyujayrg7ejrrvf0wqscldsjs89kksea0unu2htp7xnrlcdfdluqrjya9h"; +pub const FIXTURE_BOB_NPUB: &str = + "npub1uqnxu08mp55gd7guw06ls68nhxp8xuf7tlxe0sypvcl42x9ykwhsd55k2g"; +pub const FIXTURE_BOB: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_BOB_LABEL, + username: FIXTURE_BOB_USERNAME, + email: FIXTURE_BOB_EMAIL, + secret_key_hex: FIXTURE_BOB_SECRET_KEY_HEX, + public_key_hex: FIXTURE_BOB_PUBLIC_KEY_HEX, + nsec: FIXTURE_BOB_NSEC, + npub: FIXTURE_BOB_NPUB, +}; + +pub const FIXTURE_CAROL_LABEL: &str = "fixture_carol"; +pub const FIXTURE_CAROL_USERNAME: &str = "fixture_carol"; +pub const FIXTURE_CAROL_EMAIL: &str = "fixture_carol@fixtures.test"; +pub const FIXTURE_CAROL_SECRET_KEY_HEX: &str = + "4d6c20fdd86857de77ff5cfa5c545751ba2efd126e0b6642dae9764d782d6509"; +pub const FIXTURE_CAROL_PUBLIC_KEY_HEX: &str = + "1952b8c6943898bceffcff1b7699c4a775a4d13b4a9ba0096ba26ef04492bb1c"; +pub const FIXTURE_CAROL_NSEC: &str = + "nsec1f4kzplwcdptaualltna9c4zh2xazalgjdc9kvsk6a9my67pdv5ys2pqkaj"; +pub const FIXTURE_CAROL_NPUB: &str = + "npub1r9ft33558zvtemluludhdxwy5a66f5fmf2d6qztt5fh0q3yjhvwqgzmkl6"; +pub const FIXTURE_CAROL: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_CAROL_LABEL, + username: FIXTURE_CAROL_USERNAME, + email: FIXTURE_CAROL_EMAIL, + secret_key_hex: FIXTURE_CAROL_SECRET_KEY_HEX, + public_key_hex: FIXTURE_CAROL_PUBLIC_KEY_HEX, + nsec: FIXTURE_CAROL_NSEC, + npub: FIXTURE_CAROL_NPUB, +}; + +pub const FIXTURE_DIEGO_LABEL: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_USERNAME: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_EMAIL: &str = "fixture_diego@fixtures.test"; +pub const FIXTURE_DIEGO_SECRET_KEY_HEX: &str = + "9de56c1fdfce9ab00af85b3d7003c1d15cffb84cdf303c3a83c1a3fb1a2d0db0"; +pub const FIXTURE_DIEGO_PUBLIC_KEY_HEX: &str = + "5d3eab6e78eb7e467a9e196a63456c9fafb93fb88b7052b83229870889923aa4"; +pub const FIXTURE_DIEGO_NSEC: &str = + "nsec1nhjkc87le6dtqzhctv7hqq7p69w0lwzvmucrcw5rcx3lkx3dpkcqkrmgp5"; +pub const FIXTURE_DIEGO_NPUB: &str = + "npub1t5l2kmncadlyv757r94xx3tvn7hmj0ac3dc99wpj9xrs3zvj82jqwwcglm"; +pub const FIXTURE_DIEGO: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_DIEGO_LABEL, + username: FIXTURE_DIEGO_USERNAME, + email: FIXTURE_DIEGO_EMAIL, + secret_key_hex: FIXTURE_DIEGO_SECRET_KEY_HEX, + public_key_hex: FIXTURE_DIEGO_PUBLIC_KEY_HEX, + nsec: FIXTURE_DIEGO_NSEC, + npub: FIXTURE_DIEGO_NPUB, +}; + +pub const RELAY_PRIMARY_WSS: &str = "wss://relay.example.com"; +pub const RELAY_SECONDARY_WSS: &str = "wss://relay-2.example.com"; +pub const RELAY_TERTIARY_WSS: &str = "wss://relay-3.example.com"; + +pub const APP_PRIMARY_HTTPS: &str = "https://app.example.com"; +pub const API_PRIMARY_HTTPS: &str = "https://api.example.com"; +pub const CDN_PRIMARY_HTTPS: &str = "https://cdn.example.com"; diff --git a/crates/identity/tests/identity.rs b/crates/identity/tests/identity.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use radroots_events::profile::RadrootsProfile; use radroots_identity::{ DEFAULT_IDENTITY_PATH, IdentityError, RadrootsIdentity, RadrootsIdentityId, @@ -11,12 +14,12 @@ use radroots_runtime_paths::{ RadrootsHostEnvironment, RadrootsPathOverrides, RadrootsPathProfile, RadrootsPathResolver, RadrootsPlatform, }; -use radroots_test_fixtures::{ApprovedFixtureIdentity, FIXTURE_ALICE, FIXTURE_BOB}; use std::{ ffi::OsString, path::PathBuf, sync::{Mutex, OnceLock}, }; +use test_fixtures::{ApprovedFixtureIdentity, FIXTURE_ALICE, FIXTURE_BOB}; fn home_env_lock() -> &'static Mutex<()> { static LOCK: OnceLock<Mutex<()>> = OnceLock::new(); diff --git a/crates/nostr/Cargo.toml b/crates/nostr/Cargo.toml @@ -46,5 +46,4 @@ serde_json = { workspace = true } thiserror = { workspace = true } [dev-dependencies] -radroots_test_fixtures = { workspace = true } tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/crates/nostr/src/events/mod.rs b/crates/nostr/src/events/mod.rs @@ -39,8 +39,8 @@ pub fn radroots_nostr_build_event( #[cfg(test)] mod tests { use super::radroots_nostr_build_event; + use crate::test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; use crate::types::{RadrootsNostrPublicKey, RadrootsNostrTagKind}; - use radroots_test_fixtures::FIXTURE_ALICE_PUBLIC_KEY_HEX; #[test] fn build_event_preserves_self_p_tag() { diff --git a/crates/nostr/src/lib.rs b/crates/nostr/src/lib.rs @@ -15,6 +15,9 @@ pub mod tags; pub mod types; pub mod util; +#[cfg(test)] +mod test_fixtures; + #[cfg(feature = "codec")] pub mod codec_adapters; diff --git a/crates/nostr/src/nip17.rs b/crates/nostr/src/nip17.rs @@ -214,10 +214,10 @@ where #[cfg(all(test, feature = "nip17"))] mod tests { use super::*; + use crate::test_fixtures::{FIXTURE_ALICE, FIXTURE_BOB}; use nostr::{Keys, SecretKey}; use radroots_events::message::{RadrootsMessage, RadrootsMessageRecipient}; use radroots_events::message_file::{RadrootsMessageFile, RadrootsMessageFileDimensions}; - use radroots_test_fixtures::{FIXTURE_ALICE, FIXTURE_BOB}; fn sender_keys() -> Keys { Keys::new(SecretKey::from_hex(FIXTURE_ALICE.secret_key_hex).unwrap()) diff --git a/crates/nostr/src/test_fixtures.rs b/crates/nostr/src/test_fixtures.rs @@ -0,0 +1,107 @@ +#![forbid(unsafe_code)] +#![allow(dead_code)] + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct ApprovedFixtureIdentity { + pub label: &'static str, + pub username: &'static str, + pub email: &'static str, + pub secret_key_hex: &'static str, + pub public_key_hex: &'static str, + pub nsec: &'static str, + pub npub: &'static str, +} + +pub const APPROVED_FIXTURE_NAMESPACE: &str = "radroots-approved-fixture-v1"; + +pub const FIXTURE_ALICE_LABEL: &str = "fixture_alice"; +pub const FIXTURE_ALICE_USERNAME: &str = "fixture_alice"; +pub const FIXTURE_ALICE_EMAIL: &str = "fixture_alice@fixtures.test"; +pub const FIXTURE_ALICE_SECRET_KEY_HEX: &str = + "10c5304d6c9ae3a1a16f7860f1cc8f5e3a76225a2663b3a989a0d775919b7df5"; +pub const FIXTURE_ALICE_PUBLIC_KEY_HEX: &str = + "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"; +pub const FIXTURE_ALICE_NSEC: &str = + "nsec1zrznqntvnt36rgt00ps0rny0tca8vgj6ye3m82vf5rthtyvm0h6syu7drz"; +pub const FIXTURE_ALICE_NPUB: &str = + "npub1tp2ez55a5zatxxemrv0eses3ea05xhw2snuh3jy7azjqejn3q00s3vy5a9"; +pub const FIXTURE_ALICE: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_ALICE_LABEL, + username: FIXTURE_ALICE_USERNAME, + email: FIXTURE_ALICE_EMAIL, + secret_key_hex: FIXTURE_ALICE_SECRET_KEY_HEX, + public_key_hex: FIXTURE_ALICE_PUBLIC_KEY_HEX, + nsec: FIXTURE_ALICE_NSEC, + npub: FIXTURE_ALICE_NPUB, +}; + +pub const FIXTURE_BOB_LABEL: &str = "fixture_bob"; +pub const FIXTURE_BOB_USERNAME: &str = "fixture_bob"; +pub const FIXTURE_BOB_EMAIL: &str = "fixture_bob@fixtures.test"; +pub const FIXTURE_BOB_SECRET_KEY_HEX: &str = + "59392e9068f66431b12f70218fb61281cb6b433d7f27c55d61f1a63fe1a96ff8"; +pub const FIXTURE_BOB_PUBLIC_KEY_HEX: &str = + "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"; +pub const FIXTURE_BOB_NSEC: &str = + "nsec1tyujayrg7ejrrvf0wqscldsjs89kksea0unu2htp7xnrlcdfdluqrjya9h"; +pub const FIXTURE_BOB_NPUB: &str = + "npub1uqnxu08mp55gd7guw06ls68nhxp8xuf7tlxe0sypvcl42x9ykwhsd55k2g"; +pub const FIXTURE_BOB: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_BOB_LABEL, + username: FIXTURE_BOB_USERNAME, + email: FIXTURE_BOB_EMAIL, + secret_key_hex: FIXTURE_BOB_SECRET_KEY_HEX, + public_key_hex: FIXTURE_BOB_PUBLIC_KEY_HEX, + nsec: FIXTURE_BOB_NSEC, + npub: FIXTURE_BOB_NPUB, +}; + +pub const FIXTURE_CAROL_LABEL: &str = "fixture_carol"; +pub const FIXTURE_CAROL_USERNAME: &str = "fixture_carol"; +pub const FIXTURE_CAROL_EMAIL: &str = "fixture_carol@fixtures.test"; +pub const FIXTURE_CAROL_SECRET_KEY_HEX: &str = + "4d6c20fdd86857de77ff5cfa5c545751ba2efd126e0b6642dae9764d782d6509"; +pub const FIXTURE_CAROL_PUBLIC_KEY_HEX: &str = + "1952b8c6943898bceffcff1b7699c4a775a4d13b4a9ba0096ba26ef04492bb1c"; +pub const FIXTURE_CAROL_NSEC: &str = + "nsec1f4kzplwcdptaualltna9c4zh2xazalgjdc9kvsk6a9my67pdv5ys2pqkaj"; +pub const FIXTURE_CAROL_NPUB: &str = + "npub1r9ft33558zvtemluludhdxwy5a66f5fmf2d6qztt5fh0q3yjhvwqgzmkl6"; +pub const FIXTURE_CAROL: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_CAROL_LABEL, + username: FIXTURE_CAROL_USERNAME, + email: FIXTURE_CAROL_EMAIL, + secret_key_hex: FIXTURE_CAROL_SECRET_KEY_HEX, + public_key_hex: FIXTURE_CAROL_PUBLIC_KEY_HEX, + nsec: FIXTURE_CAROL_NSEC, + npub: FIXTURE_CAROL_NPUB, +}; + +pub const FIXTURE_DIEGO_LABEL: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_USERNAME: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_EMAIL: &str = "fixture_diego@fixtures.test"; +pub const FIXTURE_DIEGO_SECRET_KEY_HEX: &str = + "9de56c1fdfce9ab00af85b3d7003c1d15cffb84cdf303c3a83c1a3fb1a2d0db0"; +pub const FIXTURE_DIEGO_PUBLIC_KEY_HEX: &str = + "5d3eab6e78eb7e467a9e196a63456c9fafb93fb88b7052b83229870889923aa4"; +pub const FIXTURE_DIEGO_NSEC: &str = + "nsec1nhjkc87le6dtqzhctv7hqq7p69w0lwzvmucrcw5rcx3lkx3dpkcqkrmgp5"; +pub const FIXTURE_DIEGO_NPUB: &str = + "npub1t5l2kmncadlyv757r94xx3tvn7hmj0ac3dc99wpj9xrs3zvj82jqwwcglm"; +pub const FIXTURE_DIEGO: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_DIEGO_LABEL, + username: FIXTURE_DIEGO_USERNAME, + email: FIXTURE_DIEGO_EMAIL, + secret_key_hex: FIXTURE_DIEGO_SECRET_KEY_HEX, + public_key_hex: FIXTURE_DIEGO_PUBLIC_KEY_HEX, + nsec: FIXTURE_DIEGO_NSEC, + npub: FIXTURE_DIEGO_NPUB, +}; + +pub const RELAY_PRIMARY_WSS: &str = "wss://relay.example.com"; +pub const RELAY_SECONDARY_WSS: &str = "wss://relay-2.example.com"; +pub const RELAY_TERTIARY_WSS: &str = "wss://relay-3.example.com"; + +pub const APP_PRIMARY_HTTPS: &str = "https://app.example.com"; +pub const API_PRIMARY_HTTPS: &str = "https://api.example.com"; +pub const CDN_PRIMARY_HTTPS: &str = "https://cdn.example.com"; diff --git a/crates/nostr/tests/coverage.rs b/crates/nostr/tests/coverage.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use std::borrow::Cow; use nostr::nips::nip04; @@ -31,7 +34,7 @@ use radroots_nostr::types::{ use radroots_nostr::util::{ created_at_u32_saturating, event_created_at_u32_saturating, radroots_nostr_npub_string, }; -use radroots_test_fixtures::RELAY_PRIMARY_WSS; +use test_fixtures::RELAY_PRIMARY_WSS; fn make_keys() -> RadrootsNostrKeys { RadrootsNostrKeys::generate() diff --git a/crates/nostr_accounts/Cargo.toml b/crates/nostr_accounts/Cargo.toml @@ -49,5 +49,4 @@ thiserror = { workspace = true } zeroize = { workspace = true } [dev-dependencies] -radroots_test_fixtures = { workspace = true } tempfile = { workspace = true } diff --git a/crates/nostr_connect/Cargo.toml b/crates/nostr_connect/Cargo.toml @@ -20,4 +20,3 @@ thiserror = { workspace = true } url = { workspace = true } [dev-dependencies] -radroots_test_fixtures = { workspace = true } diff --git a/crates/nostr_connect/src/test_fixtures.rs b/crates/nostr_connect/src/test_fixtures.rs @@ -0,0 +1,107 @@ +#![forbid(unsafe_code)] +#![allow(dead_code)] + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct ApprovedFixtureIdentity { + pub label: &'static str, + pub username: &'static str, + pub email: &'static str, + pub secret_key_hex: &'static str, + pub public_key_hex: &'static str, + pub nsec: &'static str, + pub npub: &'static str, +} + +pub const APPROVED_FIXTURE_NAMESPACE: &str = "radroots-approved-fixture-v1"; + +pub const FIXTURE_ALICE_LABEL: &str = "fixture_alice"; +pub const FIXTURE_ALICE_USERNAME: &str = "fixture_alice"; +pub const FIXTURE_ALICE_EMAIL: &str = "fixture_alice@fixtures.test"; +pub const FIXTURE_ALICE_SECRET_KEY_HEX: &str = + "10c5304d6c9ae3a1a16f7860f1cc8f5e3a76225a2663b3a989a0d775919b7df5"; +pub const FIXTURE_ALICE_PUBLIC_KEY_HEX: &str = + "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"; +pub const FIXTURE_ALICE_NSEC: &str = + "nsec1zrznqntvnt36rgt00ps0rny0tca8vgj6ye3m82vf5rthtyvm0h6syu7drz"; +pub const FIXTURE_ALICE_NPUB: &str = + "npub1tp2ez55a5zatxxemrv0eses3ea05xhw2snuh3jy7azjqejn3q00s3vy5a9"; +pub const FIXTURE_ALICE: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_ALICE_LABEL, + username: FIXTURE_ALICE_USERNAME, + email: FIXTURE_ALICE_EMAIL, + secret_key_hex: FIXTURE_ALICE_SECRET_KEY_HEX, + public_key_hex: FIXTURE_ALICE_PUBLIC_KEY_HEX, + nsec: FIXTURE_ALICE_NSEC, + npub: FIXTURE_ALICE_NPUB, +}; + +pub const FIXTURE_BOB_LABEL: &str = "fixture_bob"; +pub const FIXTURE_BOB_USERNAME: &str = "fixture_bob"; +pub const FIXTURE_BOB_EMAIL: &str = "fixture_bob@fixtures.test"; +pub const FIXTURE_BOB_SECRET_KEY_HEX: &str = + "59392e9068f66431b12f70218fb61281cb6b433d7f27c55d61f1a63fe1a96ff8"; +pub const FIXTURE_BOB_PUBLIC_KEY_HEX: &str = + "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"; +pub const FIXTURE_BOB_NSEC: &str = + "nsec1tyujayrg7ejrrvf0wqscldsjs89kksea0unu2htp7xnrlcdfdluqrjya9h"; +pub const FIXTURE_BOB_NPUB: &str = + "npub1uqnxu08mp55gd7guw06ls68nhxp8xuf7tlxe0sypvcl42x9ykwhsd55k2g"; +pub const FIXTURE_BOB: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_BOB_LABEL, + username: FIXTURE_BOB_USERNAME, + email: FIXTURE_BOB_EMAIL, + secret_key_hex: FIXTURE_BOB_SECRET_KEY_HEX, + public_key_hex: FIXTURE_BOB_PUBLIC_KEY_HEX, + nsec: FIXTURE_BOB_NSEC, + npub: FIXTURE_BOB_NPUB, +}; + +pub const FIXTURE_CAROL_LABEL: &str = "fixture_carol"; +pub const FIXTURE_CAROL_USERNAME: &str = "fixture_carol"; +pub const FIXTURE_CAROL_EMAIL: &str = "fixture_carol@fixtures.test"; +pub const FIXTURE_CAROL_SECRET_KEY_HEX: &str = + "4d6c20fdd86857de77ff5cfa5c545751ba2efd126e0b6642dae9764d782d6509"; +pub const FIXTURE_CAROL_PUBLIC_KEY_HEX: &str = + "1952b8c6943898bceffcff1b7699c4a775a4d13b4a9ba0096ba26ef04492bb1c"; +pub const FIXTURE_CAROL_NSEC: &str = + "nsec1f4kzplwcdptaualltna9c4zh2xazalgjdc9kvsk6a9my67pdv5ys2pqkaj"; +pub const FIXTURE_CAROL_NPUB: &str = + "npub1r9ft33558zvtemluludhdxwy5a66f5fmf2d6qztt5fh0q3yjhvwqgzmkl6"; +pub const FIXTURE_CAROL: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_CAROL_LABEL, + username: FIXTURE_CAROL_USERNAME, + email: FIXTURE_CAROL_EMAIL, + secret_key_hex: FIXTURE_CAROL_SECRET_KEY_HEX, + public_key_hex: FIXTURE_CAROL_PUBLIC_KEY_HEX, + nsec: FIXTURE_CAROL_NSEC, + npub: FIXTURE_CAROL_NPUB, +}; + +pub const FIXTURE_DIEGO_LABEL: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_USERNAME: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_EMAIL: &str = "fixture_diego@fixtures.test"; +pub const FIXTURE_DIEGO_SECRET_KEY_HEX: &str = + "9de56c1fdfce9ab00af85b3d7003c1d15cffb84cdf303c3a83c1a3fb1a2d0db0"; +pub const FIXTURE_DIEGO_PUBLIC_KEY_HEX: &str = + "5d3eab6e78eb7e467a9e196a63456c9fafb93fb88b7052b83229870889923aa4"; +pub const FIXTURE_DIEGO_NSEC: &str = + "nsec1nhjkc87le6dtqzhctv7hqq7p69w0lwzvmucrcw5rcx3lkx3dpkcqkrmgp5"; +pub const FIXTURE_DIEGO_NPUB: &str = + "npub1t5l2kmncadlyv757r94xx3tvn7hmj0ac3dc99wpj9xrs3zvj82jqwwcglm"; +pub const FIXTURE_DIEGO: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_DIEGO_LABEL, + username: FIXTURE_DIEGO_USERNAME, + email: FIXTURE_DIEGO_EMAIL, + secret_key_hex: FIXTURE_DIEGO_SECRET_KEY_HEX, + public_key_hex: FIXTURE_DIEGO_PUBLIC_KEY_HEX, + nsec: FIXTURE_DIEGO_NSEC, + npub: FIXTURE_DIEGO_NPUB, +}; + +pub const RELAY_PRIMARY_WSS: &str = "wss://relay.example.com"; +pub const RELAY_SECONDARY_WSS: &str = "wss://relay-2.example.com"; +pub const RELAY_TERTIARY_WSS: &str = "wss://relay-3.example.com"; + +pub const APP_PRIMARY_HTTPS: &str = "https://app.example.com"; +pub const API_PRIMARY_HTTPS: &str = "https://api.example.com"; +pub const CDN_PRIMARY_HTTPS: &str = "https://cdn.example.com"; diff --git a/crates/nostr_connect/tests/coverage.rs b/crates/nostr_connect/tests/coverage.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use nostr::{Event, EventBuilder, Keys, PublicKey, RelayUrl, SecretKey, Timestamp, UnsignedEvent}; use radroots_nostr_connect::prelude::{ RADROOTS_NOSTR_CONNECT_PENDING_CONNECTION_ERROR, RadrootsNostrConnectError, @@ -6,12 +9,12 @@ use radroots_nostr_connect::prelude::{ RadrootsNostrConnectRequestMessage, RadrootsNostrConnectResponse, RadrootsNostrConnectResponseEnvelope, RadrootsNostrConnectUri, }; -use radroots_test_fixtures::{ +use serde_json::{Value, json}; +use std::str::FromStr; +use test_fixtures::{ APP_PRIMARY_HTTPS, CDN_PRIMARY_HTTPS, FIXTURE_ALICE, RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS, RELAY_TERTIARY_WSS, }; -use serde_json::{Value, json}; -use std::str::FromStr; fn test_public_key() -> PublicKey { PublicKey::parse(FIXTURE_ALICE.public_key_hex).expect("public key") diff --git a/crates/nostr_connect/tests/protocol.rs b/crates/nostr_connect/tests/protocol.rs @@ -1,3 +1,6 @@ +#[path = "../src/test_fixtures.rs"] +mod test_fixtures; + use nostr::{EventBuilder, Keys, PublicKey, RelayUrl, SecretKey, Timestamp, UnsignedEvent}; use radroots_nostr_connect::prelude::{ RADROOTS_NOSTR_CONNECT_PENDING_CONNECTION_ERROR, RadrootsNostrConnectMethod, @@ -5,11 +8,11 @@ use radroots_nostr_connect::prelude::{ RadrootsNostrConnectRequestMessage, RadrootsNostrConnectResponse, RadrootsNostrConnectResponseEnvelope, RadrootsNostrConnectUri, }; -use radroots_test_fixtures::{ +use serde_json::{Value, json}; +use test_fixtures::{ APP_PRIMARY_HTTPS, CDN_PRIMARY_HTTPS, FIXTURE_ALICE, RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS, RELAY_TERTIARY_WSS, }; -use serde_json::{Value, json}; fn test_public_key() -> PublicKey { PublicKey::parse(FIXTURE_ALICE.public_key_hex).expect("public key") diff --git a/crates/nostr_ndb/Cargo.toml b/crates/nostr_ndb/Cargo.toml @@ -37,6 +37,5 @@ thiserror = { workspace = true } tokio = { workspace = true, optional = true, features = ["rt", "sync", "time"] } [dev-dependencies] -radroots_test_fixtures = { workspace = true } tokio = { workspace = true, features = ["macros", "rt", "sync", "time"] } tempfile = { workspace = true } diff --git a/crates/nostr_ndb/src/lib.rs b/crates/nostr_ndb/src/lib.rs @@ -6,6 +6,9 @@ compile_error!("radroots_nostr_ndb requires the std feature"); extern crate alloc; +#[cfg(test)] +mod test_fixtures; + #[cfg(feature = "ndb")] pub mod config; pub mod error; diff --git a/crates/nostr_ndb/src/ndb.rs b/crates/nostr_ndb/src/ndb.rs @@ -351,10 +351,10 @@ mod tests { use crate::filter::RadrootsNostrNdbFilterSpec; use crate::ingest::RadrootsNostrNdbIngestSource; use crate::query::RadrootsNostrNdbQuerySpec; + use crate::test_fixtures::{FIXTURE_ALICE_EMAIL, FIXTURE_ALICE_USERNAME}; use futures::StreamExt; use radroots_nostr::prelude::{RadrootsNostrEventBuilder, RadrootsNostrKeys}; use radroots_nostr::prelude::{RadrootsNostrMetadata, radroots_nostr_build_metadata_event}; - use radroots_test_fixtures::{FIXTURE_ALICE_EMAIL, FIXTURE_ALICE_USERNAME}; use std::sync::atomic::Ordering; use std::sync::{Mutex, OnceLock}; use std::time::Duration; diff --git a/crates/nostr_ndb/src/test_fixtures.rs b/crates/nostr_ndb/src/test_fixtures.rs @@ -0,0 +1,107 @@ +#![forbid(unsafe_code)] +#![allow(dead_code)] + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct ApprovedFixtureIdentity { + pub label: &'static str, + pub username: &'static str, + pub email: &'static str, + pub secret_key_hex: &'static str, + pub public_key_hex: &'static str, + pub nsec: &'static str, + pub npub: &'static str, +} + +pub const APPROVED_FIXTURE_NAMESPACE: &str = "radroots-approved-fixture-v1"; + +pub const FIXTURE_ALICE_LABEL: &str = "fixture_alice"; +pub const FIXTURE_ALICE_USERNAME: &str = "fixture_alice"; +pub const FIXTURE_ALICE_EMAIL: &str = "fixture_alice@fixtures.test"; +pub const FIXTURE_ALICE_SECRET_KEY_HEX: &str = + "10c5304d6c9ae3a1a16f7860f1cc8f5e3a76225a2663b3a989a0d775919b7df5"; +pub const FIXTURE_ALICE_PUBLIC_KEY_HEX: &str = + "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"; +pub const FIXTURE_ALICE_NSEC: &str = + "nsec1zrznqntvnt36rgt00ps0rny0tca8vgj6ye3m82vf5rthtyvm0h6syu7drz"; +pub const FIXTURE_ALICE_NPUB: &str = + "npub1tp2ez55a5zatxxemrv0eses3ea05xhw2snuh3jy7azjqejn3q00s3vy5a9"; +pub const FIXTURE_ALICE: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_ALICE_LABEL, + username: FIXTURE_ALICE_USERNAME, + email: FIXTURE_ALICE_EMAIL, + secret_key_hex: FIXTURE_ALICE_SECRET_KEY_HEX, + public_key_hex: FIXTURE_ALICE_PUBLIC_KEY_HEX, + nsec: FIXTURE_ALICE_NSEC, + npub: FIXTURE_ALICE_NPUB, +}; + +pub const FIXTURE_BOB_LABEL: &str = "fixture_bob"; +pub const FIXTURE_BOB_USERNAME: &str = "fixture_bob"; +pub const FIXTURE_BOB_EMAIL: &str = "fixture_bob@fixtures.test"; +pub const FIXTURE_BOB_SECRET_KEY_HEX: &str = + "59392e9068f66431b12f70218fb61281cb6b433d7f27c55d61f1a63fe1a96ff8"; +pub const FIXTURE_BOB_PUBLIC_KEY_HEX: &str = + "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"; +pub const FIXTURE_BOB_NSEC: &str = + "nsec1tyujayrg7ejrrvf0wqscldsjs89kksea0unu2htp7xnrlcdfdluqrjya9h"; +pub const FIXTURE_BOB_NPUB: &str = + "npub1uqnxu08mp55gd7guw06ls68nhxp8xuf7tlxe0sypvcl42x9ykwhsd55k2g"; +pub const FIXTURE_BOB: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_BOB_LABEL, + username: FIXTURE_BOB_USERNAME, + email: FIXTURE_BOB_EMAIL, + secret_key_hex: FIXTURE_BOB_SECRET_KEY_HEX, + public_key_hex: FIXTURE_BOB_PUBLIC_KEY_HEX, + nsec: FIXTURE_BOB_NSEC, + npub: FIXTURE_BOB_NPUB, +}; + +pub const FIXTURE_CAROL_LABEL: &str = "fixture_carol"; +pub const FIXTURE_CAROL_USERNAME: &str = "fixture_carol"; +pub const FIXTURE_CAROL_EMAIL: &str = "fixture_carol@fixtures.test"; +pub const FIXTURE_CAROL_SECRET_KEY_HEX: &str = + "4d6c20fdd86857de77ff5cfa5c545751ba2efd126e0b6642dae9764d782d6509"; +pub const FIXTURE_CAROL_PUBLIC_KEY_HEX: &str = + "1952b8c6943898bceffcff1b7699c4a775a4d13b4a9ba0096ba26ef04492bb1c"; +pub const FIXTURE_CAROL_NSEC: &str = + "nsec1f4kzplwcdptaualltna9c4zh2xazalgjdc9kvsk6a9my67pdv5ys2pqkaj"; +pub const FIXTURE_CAROL_NPUB: &str = + "npub1r9ft33558zvtemluludhdxwy5a66f5fmf2d6qztt5fh0q3yjhvwqgzmkl6"; +pub const FIXTURE_CAROL: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_CAROL_LABEL, + username: FIXTURE_CAROL_USERNAME, + email: FIXTURE_CAROL_EMAIL, + secret_key_hex: FIXTURE_CAROL_SECRET_KEY_HEX, + public_key_hex: FIXTURE_CAROL_PUBLIC_KEY_HEX, + nsec: FIXTURE_CAROL_NSEC, + npub: FIXTURE_CAROL_NPUB, +}; + +pub const FIXTURE_DIEGO_LABEL: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_USERNAME: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_EMAIL: &str = "fixture_diego@fixtures.test"; +pub const FIXTURE_DIEGO_SECRET_KEY_HEX: &str = + "9de56c1fdfce9ab00af85b3d7003c1d15cffb84cdf303c3a83c1a3fb1a2d0db0"; +pub const FIXTURE_DIEGO_PUBLIC_KEY_HEX: &str = + "5d3eab6e78eb7e467a9e196a63456c9fafb93fb88b7052b83229870889923aa4"; +pub const FIXTURE_DIEGO_NSEC: &str = + "nsec1nhjkc87le6dtqzhctv7hqq7p69w0lwzvmucrcw5rcx3lkx3dpkcqkrmgp5"; +pub const FIXTURE_DIEGO_NPUB: &str = + "npub1t5l2kmncadlyv757r94xx3tvn7hmj0ac3dc99wpj9xrs3zvj82jqwwcglm"; +pub const FIXTURE_DIEGO: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_DIEGO_LABEL, + username: FIXTURE_DIEGO_USERNAME, + email: FIXTURE_DIEGO_EMAIL, + secret_key_hex: FIXTURE_DIEGO_SECRET_KEY_HEX, + public_key_hex: FIXTURE_DIEGO_PUBLIC_KEY_HEX, + nsec: FIXTURE_DIEGO_NSEC, + npub: FIXTURE_DIEGO_NPUB, +}; + +pub const RELAY_PRIMARY_WSS: &str = "wss://relay.example.com"; +pub const RELAY_SECONDARY_WSS: &str = "wss://relay-2.example.com"; +pub const RELAY_TERTIARY_WSS: &str = "wss://relay-3.example.com"; + +pub const APP_PRIMARY_HTTPS: &str = "https://app.example.com"; +pub const API_PRIMARY_HTTPS: &str = "https://api.example.com"; +pub const CDN_PRIMARY_HTTPS: &str = "https://cdn.example.com"; diff --git a/crates/nostr_signer/Cargo.toml b/crates/nostr_signer/Cargo.toml @@ -35,7 +35,6 @@ uuid = { workspace = true } [dev-dependencies] radroots_sql_core = { workspace = true, features = ["native"] } -radroots_test_fixtures = { workspace = true } tempfile = { workspace = true } [lints.rust] diff --git a/crates/nostr_signer/src/lib.rs b/crates/nostr_signer/src/lib.rs @@ -14,6 +14,8 @@ pub mod sqlite; pub mod store; #[cfg(test)] +mod test_fixtures; +#[cfg(test)] mod test_support; pub mod prelude { diff --git a/crates/nostr_signer/src/test_fixtures.rs b/crates/nostr_signer/src/test_fixtures.rs @@ -0,0 +1,107 @@ +#![forbid(unsafe_code)] +#![allow(dead_code)] + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct ApprovedFixtureIdentity { + pub label: &'static str, + pub username: &'static str, + pub email: &'static str, + pub secret_key_hex: &'static str, + pub public_key_hex: &'static str, + pub nsec: &'static str, + pub npub: &'static str, +} + +pub const APPROVED_FIXTURE_NAMESPACE: &str = "radroots-approved-fixture-v1"; + +pub const FIXTURE_ALICE_LABEL: &str = "fixture_alice"; +pub const FIXTURE_ALICE_USERNAME: &str = "fixture_alice"; +pub const FIXTURE_ALICE_EMAIL: &str = "fixture_alice@fixtures.test"; +pub const FIXTURE_ALICE_SECRET_KEY_HEX: &str = + "10c5304d6c9ae3a1a16f7860f1cc8f5e3a76225a2663b3a989a0d775919b7df5"; +pub const FIXTURE_ALICE_PUBLIC_KEY_HEX: &str = + "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"; +pub const FIXTURE_ALICE_NSEC: &str = + "nsec1zrznqntvnt36rgt00ps0rny0tca8vgj6ye3m82vf5rthtyvm0h6syu7drz"; +pub const FIXTURE_ALICE_NPUB: &str = + "npub1tp2ez55a5zatxxemrv0eses3ea05xhw2snuh3jy7azjqejn3q00s3vy5a9"; +pub const FIXTURE_ALICE: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_ALICE_LABEL, + username: FIXTURE_ALICE_USERNAME, + email: FIXTURE_ALICE_EMAIL, + secret_key_hex: FIXTURE_ALICE_SECRET_KEY_HEX, + public_key_hex: FIXTURE_ALICE_PUBLIC_KEY_HEX, + nsec: FIXTURE_ALICE_NSEC, + npub: FIXTURE_ALICE_NPUB, +}; + +pub const FIXTURE_BOB_LABEL: &str = "fixture_bob"; +pub const FIXTURE_BOB_USERNAME: &str = "fixture_bob"; +pub const FIXTURE_BOB_EMAIL: &str = "fixture_bob@fixtures.test"; +pub const FIXTURE_BOB_SECRET_KEY_HEX: &str = + "59392e9068f66431b12f70218fb61281cb6b433d7f27c55d61f1a63fe1a96ff8"; +pub const FIXTURE_BOB_PUBLIC_KEY_HEX: &str = + "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"; +pub const FIXTURE_BOB_NSEC: &str = + "nsec1tyujayrg7ejrrvf0wqscldsjs89kksea0unu2htp7xnrlcdfdluqrjya9h"; +pub const FIXTURE_BOB_NPUB: &str = + "npub1uqnxu08mp55gd7guw06ls68nhxp8xuf7tlxe0sypvcl42x9ykwhsd55k2g"; +pub const FIXTURE_BOB: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_BOB_LABEL, + username: FIXTURE_BOB_USERNAME, + email: FIXTURE_BOB_EMAIL, + secret_key_hex: FIXTURE_BOB_SECRET_KEY_HEX, + public_key_hex: FIXTURE_BOB_PUBLIC_KEY_HEX, + nsec: FIXTURE_BOB_NSEC, + npub: FIXTURE_BOB_NPUB, +}; + +pub const FIXTURE_CAROL_LABEL: &str = "fixture_carol"; +pub const FIXTURE_CAROL_USERNAME: &str = "fixture_carol"; +pub const FIXTURE_CAROL_EMAIL: &str = "fixture_carol@fixtures.test"; +pub const FIXTURE_CAROL_SECRET_KEY_HEX: &str = + "4d6c20fdd86857de77ff5cfa5c545751ba2efd126e0b6642dae9764d782d6509"; +pub const FIXTURE_CAROL_PUBLIC_KEY_HEX: &str = + "1952b8c6943898bceffcff1b7699c4a775a4d13b4a9ba0096ba26ef04492bb1c"; +pub const FIXTURE_CAROL_NSEC: &str = + "nsec1f4kzplwcdptaualltna9c4zh2xazalgjdc9kvsk6a9my67pdv5ys2pqkaj"; +pub const FIXTURE_CAROL_NPUB: &str = + "npub1r9ft33558zvtemluludhdxwy5a66f5fmf2d6qztt5fh0q3yjhvwqgzmkl6"; +pub const FIXTURE_CAROL: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_CAROL_LABEL, + username: FIXTURE_CAROL_USERNAME, + email: FIXTURE_CAROL_EMAIL, + secret_key_hex: FIXTURE_CAROL_SECRET_KEY_HEX, + public_key_hex: FIXTURE_CAROL_PUBLIC_KEY_HEX, + nsec: FIXTURE_CAROL_NSEC, + npub: FIXTURE_CAROL_NPUB, +}; + +pub const FIXTURE_DIEGO_LABEL: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_USERNAME: &str = "fixture_diego"; +pub const FIXTURE_DIEGO_EMAIL: &str = "fixture_diego@fixtures.test"; +pub const FIXTURE_DIEGO_SECRET_KEY_HEX: &str = + "9de56c1fdfce9ab00af85b3d7003c1d15cffb84cdf303c3a83c1a3fb1a2d0db0"; +pub const FIXTURE_DIEGO_PUBLIC_KEY_HEX: &str = + "5d3eab6e78eb7e467a9e196a63456c9fafb93fb88b7052b83229870889923aa4"; +pub const FIXTURE_DIEGO_NSEC: &str = + "nsec1nhjkc87le6dtqzhctv7hqq7p69w0lwzvmucrcw5rcx3lkx3dpkcqkrmgp5"; +pub const FIXTURE_DIEGO_NPUB: &str = + "npub1t5l2kmncadlyv757r94xx3tvn7hmj0ac3dc99wpj9xrs3zvj82jqwwcglm"; +pub const FIXTURE_DIEGO: ApprovedFixtureIdentity = ApprovedFixtureIdentity { + label: FIXTURE_DIEGO_LABEL, + username: FIXTURE_DIEGO_USERNAME, + email: FIXTURE_DIEGO_EMAIL, + secret_key_hex: FIXTURE_DIEGO_SECRET_KEY_HEX, + public_key_hex: FIXTURE_DIEGO_PUBLIC_KEY_HEX, + nsec: FIXTURE_DIEGO_NSEC, + npub: FIXTURE_DIEGO_NPUB, +}; + +pub const RELAY_PRIMARY_WSS: &str = "wss://relay.example.com"; +pub const RELAY_SECONDARY_WSS: &str = "wss://relay-2.example.com"; +pub const RELAY_TERTIARY_WSS: &str = "wss://relay-3.example.com"; + +pub const APP_PRIMARY_HTTPS: &str = "https://app.example.com"; +pub const API_PRIMARY_HTTPS: &str = "https://api.example.com"; +pub const CDN_PRIMARY_HTTPS: &str = "https://cdn.example.com"; diff --git a/crates/nostr_signer/src/test_support.rs b/crates/nostr_signer/src/test_support.rs @@ -1,9 +1,9 @@ -use nostr::{Keys, PublicKey, RelayUrl, SecretKey}; -use radroots_identity::{RadrootsIdentity, RadrootsIdentityPublic}; -use radroots_test_fixtures::{ +use crate::test_fixtures::{ API_PRIMARY_HTTPS, ApprovedFixtureIdentity, FIXTURE_ALICE, FIXTURE_BOB, FIXTURE_CAROL, FIXTURE_DIEGO, RELAY_PRIMARY_WSS, RELAY_SECONDARY_WSS, RELAY_TERTIARY_WSS, }; +use nostr::{Keys, PublicKey, RelayUrl, SecretKey}; +use radroots_identity::{RadrootsIdentity, RadrootsIdentityPublic}; fn approved_public_identity(identity: ApprovedFixtureIdentity) -> RadrootsIdentityPublic { RadrootsIdentity::from_secret_key_str(identity.secret_key_hex)