integration-test (#8)
Some checks failed
CI/CD Pipeline / test (push) Failing after 53s
CI/CD Pipeline / deploy (push) Has been skipped

Co-authored-by: Philipp Hofer <philipp.hofer@mag.linz.at>
Reviewed-on: #8
This commit was merged in pull request #8.
This commit is contained in:
2025-10-29 12:18:09 +01:00
parent ad759e1ca9
commit 2e11261179
3 changed files with 37 additions and 3 deletions

View File

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

View File

@@ -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"] }

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(())
}