integration-test (#8)
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:
		| @@ -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 | ||||
|   | ||||
| @@ -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
									
								
							
							
						
						
									
										34
									
								
								tests/integration.rs
									
									
									
									
									
										Normal 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(()) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user