mirror of
https://github.com/aljazceru/pubky-core.git
synced 2026-01-28 10:24:23 +01:00
feat(testnet): testnet working with wasm tests
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
2
pubky/.cargo/config.toml
Normal file
@@ -0,0 +1,2 @@
|
||||
[target.wasm32-unknown-unknown]
|
||||
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user