feat(testnet): testnet working with wasm tests

This commit is contained in:
nazeh
2025-02-12 21:38:31 +03:00
parent fcf3086f1e
commit f423257017
5 changed files with 32 additions and 28 deletions

View File

@@ -50,6 +50,13 @@ impl HomeserverBuilder {
self
}
/// Set the public domain of this Homeserver
pub fn domain(&mut self, domain: &str) -> &mut Self {
self.0.io.domain = Some(domain.to_string());
self
}
/// Run a Homeserver
///
/// # Safety

View File

@@ -9,7 +9,6 @@ use url::Url;
pub struct Testnet {
dht: mainline::Testnet,
bootstrap: Vec<String>,
relays: Vec<pkarr_relay::Relay>,
}
@@ -18,7 +17,6 @@ impl Testnet {
let dht = mainline::Testnet::new(10)?;
let mut testnet = Self {
bootstrap: dht.bootstrap.clone(),
dht,
relays: vec![],
};
@@ -37,12 +35,7 @@ impl Testnet {
pub async fn run_with_hardcoded_configurations() -> Result<Self> {
let dht = mainline::Testnet::new(10)?;
let node = mainline::Dht::builder()
.server_mode()
.bootstrap(&dht.bootstrap)
.build()?;
let bootstrap = vec![node.info().local_addr().to_string()];
dht.leak();
let storage = std::env::temp_dir().join(Timestamp::now().to_string());
@@ -58,31 +51,31 @@ impl Testnet {
config
.pkarr
.request_timeout(Duration::from_millis(100))
.bootstrap(&bootstrap)
.dht(|builder| builder.server_mode());
.bootstrap(&dht.bootstrap)
.dht(|builder| {
if !dht.bootstrap.first().unwrap().contains("6881") {
builder.server_mode().port(6881);
}
builder
});
unsafe { pkarr_relay::Relay::run(config).await? }
};
{
let mut builder = Homeserver::builder();
let mut builder = Homeserver::builder();
builder
.keypair(Keypair::from_secret_key(&[0; 32]))
.storage(storage)
.bootstrap(&dht.bootstrap)
.relays(&[relay.local_url()])
.domain("localhost");
unsafe { builder.run().await }?;
builder
.keypair(Keypair::from_secret_key(&[0; 32]))
.storage(storage)
.bootstrap(&bootstrap)
.relays(&[]);
unsafe { builder.run().await? }
};
{
HttpRelay::builder().http_port(15412).run().await?
};
HttpRelay::builder().http_port(15412).run().await?;
let testnet = Self {
dht,
bootstrap,
relays: vec![relay],
};
@@ -93,7 +86,7 @@ impl Testnet {
/// Returns a list of DHT bootstrapping nodes.
pub fn bootstrap(&self) -> &[String] {
&self.bootstrap
&self.dht.bootstrap
}
/// Returns a list of pkarr relays.

2
pubky/.cargo/config.toml Normal file
View File

@@ -0,0 +1,2 @@
[target.wasm32-unknown-unknown]
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]

View File

@@ -33,7 +33,9 @@ reqwest = { version = "0.12.12", features = ["cookies", "rustls-tls"], default-f
tokio = { version = "1.43.0", features = ["full"] }
# Wasm dependencies
[target.'cfg(target_arch = "wasm32")'.dependencies]
[target.wasm32-unknown-unknown.dependencies]
getrandom = { version = "0.3.1", features = ["wasm_js"] }
getrandom2 = { version = "0.2.15", package = "getrandom", features = ["js"] }
reqwest = { version = "0.12.12", default-features = false }
futures-lite = { version = "2.6.0", default-features = false }
wasm-bindgen = "0.2.100"

View File

@@ -84,7 +84,7 @@ impl ClientBuilder {
.user_agent(user_agent);
#[cfg(wasm_browser)]
let mut http_builder = reqwest::Client::builder().user_agent(user_agent);
let http_builder = reqwest::Client::builder().user_agent(user_agent);
#[cfg(not(wasm_browser))]
let mut icann_http_builder = reqwest::Client::builder()