Skip to content

Commit 3f9308f

Browse files
committed
Use payjoin-io in integration tests
1 parent 9a747da commit 3f9308f

File tree

3 files changed

+12
-36
lines changed

3 files changed

+12
-36
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

payjoin/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ tokio = { version = "1.12.0", features = ["full"] }
4646
tracing = "0.1.40"
4747
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
4848
ureq = "2.9.4"
49+
payjoin-io = { path = "../payjoin-io", features = ["danger-local-https"]}
4950

5051
[package.metadata.docs.rs]
5152
features = ["send", "receive", "base64", "v2"]

payjoin/tests/integration.rs

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ mod integration {
276276
wait_for_service_ready(ohttp_relay.clone(), agent.clone()).await.unwrap();
277277
wait_for_service_ready(directory.clone(), agent.clone()).await.unwrap();
278278
let ohttp_keys =
279-
fetch_ohttp_keys(&ohttp_relay, &directory, cert_der.clone()).await?;
279+
fetch_ohttp_keys(ohttp_relay, directory.clone(), cert_der.clone()).await?;
280280

281281
// **********************
282282
// Inside the Receiver:
@@ -388,7 +388,7 @@ mod integration {
388388
wait_for_service_ready(ohttp_relay.clone(), agent.clone()).await.unwrap();
389389
wait_for_service_ready(directory.clone(), agent.clone()).await.unwrap();
390390
let ohttp_keys =
391-
fetch_ohttp_keys(&ohttp_relay, &directory, cert_der.clone()).await?;
391+
fetch_ohttp_keys(ohttp_relay, directory.clone(), cert_der.clone()).await?;
392392

393393
let mut enrolled =
394394
enroll_with_directory(directory, ohttp_keys.clone(), cert_der.clone()).await?;
@@ -525,38 +525,17 @@ mod integration {
525525
}
526526

527527
async fn fetch_ohttp_keys(
528-
ohttp_relay: &Url,
529-
directory: &Url,
528+
ohttp_relay: Url,
529+
directory: Url,
530530
cert_der: Vec<u8>,
531531
) -> Result<payjoin::OhttpKeys, BoxError> {
532-
let ohttp_relay = ohttp_relay.clone();
533-
let directory_ohttp_keys = directory.join("/ohttp-keys")?;
534-
let res = spawn_blocking(move || {
535-
http_proxy(cert_der, &ohttp_relay)
536-
.unwrap()
537-
.get(directory_ohttp_keys.as_str())
538-
.call()
532+
let res = tokio::task::spawn_blocking(move || {
533+
payjoin_io::fetch_ohttp_keys(ohttp_relay.clone(), directory.clone(), cert_der)
539534
})
540-
.await??;
541-
assert_eq!(res.status(), 200, "Failed to connect to target {}", res.status());
542-
let mut body = Vec::new();
543-
let _ = res.into_reader().read_to_end(&mut body)?;
544-
Ok(payjoin::OhttpKeys::decode(&body)?)
545-
}
546-
547-
/// Normalize the Url to include the port for ureq. ureq has a bug
548-
/// which makes Proxy::new(...) use port 8080 for all input with scheme
549-
/// http regardless of the port included in the Url. This prevents that.
550-
/// https://github.com/algesten/ureq/pull/717
551-
fn normalize_proxy_url(proxy: &Url) -> Result<String, BoxError> {
552-
let scheme = proxy.scheme();
553-
let host = proxy.host_str().ok_or("No host")?;
554-
555-
if scheme == "http" || scheme == "https" {
556-
Ok(format!("{}:{}", host, proxy.port().unwrap_or(80)))
557-
} else {
558-
Ok(proxy.as_str().to_string())
559-
}
535+
.await
536+
.map_err(|e| e.to_string())?
537+
.map_err(|e| e.to_string())?;
538+
Ok(res)
560539
}
561540

562541
async fn enroll_with_directory(
@@ -692,11 +671,6 @@ mod integration {
692671
Ok(http_agent_builder(cert_der)?.build())
693672
}
694673

695-
fn http_proxy(cert_der: Vec<u8>, proxy: &Url) -> Result<Agent, BoxError> {
696-
let proxy = ureq::Proxy::new(normalize_proxy_url(proxy)?)?;
697-
Ok(http_agent_builder(cert_der)?.proxy(proxy).build())
698-
}
699-
700674
fn http_agent_builder(cert_der: Vec<u8>) -> Result<AgentBuilder, BoxError> {
701675
use rustls::client::ClientConfig;
702676
use rustls::pki_types::CertificateDer;

0 commit comments

Comments
 (0)