integration-test #8

Merged
philipp merged 3 commits from integration-test into main 2025-10-29 12:18:09 +01:00
3 changed files with 37 additions and 3 deletions

View File

@@ -21,8 +21,8 @@ jobs:
- name: Build - name: Build
run: cargo build run: cargo build
- name: Backend tests - name: Tests
run: cargo test --verbose run: cargo test --verbose -- --ignored
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -10,4 +10,4 @@ reqwest = { version = "0.12", features = ["stream", "json", "rustls-tls"], defau
serde_json = "1" serde_json = "1"
chrono = "0.4" chrono = "0.4"
quick-xml = "0.38" quick-xml = "0.38"
serde = { version = "1.0.228", features = ["derive"] } serde = { version = "1", features = ["derive"] }

34
tests/integration.rs Normal file
View File

@@ -0,0 +1,34 @@
use player::Backend;
#[ignored]
#[tokio::test]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
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(())
}