From fb7674eac10120d1c7a18d9efbfe9c125b1b157c Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Wed, 29 Oct 2025 12:11:58 +0100 Subject: [PATCH] add integration test --- Cargo.toml | 2 +- tests/integration.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tests/integration.rs diff --git a/Cargo.toml b/Cargo.toml index fa3e148..4963be0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,4 @@ reqwest = { version = "0.12", features = ["stream", "json", "rustls-tls"], defau serde_json = "1" chrono = "0.4" quick-xml = "0.38" -serde = { version = "1.0.228", features = ["derive"] } +serde = { version = "1", features = ["derive"] } diff --git a/tests/integration.rs b/tests/integration.rs new file mode 100644 index 0000000..b82a5c1 --- /dev/null +++ b/tests/integration.rs @@ -0,0 +1,34 @@ +use player::Backend; + +#[ignore] +#[tokio::test] +async fn main() -> Result<(), Box> { + let listener = tokio::net::TcpListener::bind("0.0.0.0:0").await?; + let addr = listener.local_addr().unwrap(); + + // Start server in background task + tokio::spawn(async move { + if let Err(e) = player::start( + "Test Feed".into(), + "http://test.example".into(), + "Test description".into(), + vec!["Test Journal".into()], + listener, + Backend::Prod, + ) + .await + { + eprintln!("Server failed to start: {e}"); + } + }); + + // Allow server startup time + tokio::time::sleep(tokio::time::Duration::from_millis(3000)).await; + + // Verify route responds with success status + let response = reqwest::get(format!("http://{addr}/")).await.unwrap(); + + assert_eq!(response.status(), 200); + + Ok(()) +}