summaryrefslogtreecommitdiff
path: root/tests/router_integration_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/router_integration_tests.rs')
-rw-r--r--tests/router_integration_tests.rs94
1 files changed, 94 insertions, 0 deletions
diff --git a/tests/router_integration_tests.rs b/tests/router_integration_tests.rs
new file mode 100644
index 0000000..bf534f5
--- /dev/null
+++ b/tests/router_integration_tests.rs
@@ -0,0 +1,94 @@
+use mesk::cfg::config::{Config, RouterConfig};
+use mesk::router::manager::RouterManager;
+
+// Integration tests for router functionality
+// Note: These tests use a minimal configuration to avoid actually starting a full router
+
+#[tokio::test]
+async fn test_router_start_functionality() {
+ let config = create_test_config(true); // Enable router for this test
+
+ let result = RouterManager::new(&config).await;
+ assert!(result.is_ok());
+
+ let manager = result.unwrap();
+
+ // Initially should not be running
+ assert_eq!(manager.is_running(), false);
+
+ // Attempt to start (this won't fully work without actual router dependencies)
+ let start_result = manager.start().await;
+ // This might fail due to missing dependencies, but the call should be accepted
+ println!("Start result: {:?}", start_result);
+}
+
+#[tokio::test]
+async fn test_router_stop_functionality() {
+ let config = create_test_config(true); // Enable router for this test
+
+ let result = RouterManager::new(&config).await;
+ assert!(result.is_ok());
+
+ let manager = result.unwrap();
+
+ // Test stopping when not running
+ manager.stop().await;
+ assert_eq!(manager.is_running(), false);
+}
+
+#[tokio::test]
+async fn test_router_restart_functionality() {
+ let config = create_test_config(true); // Enable router for this test
+
+ let result = RouterManager::new(&config).await;
+ assert!(result.is_ok());
+
+ let manager = result.unwrap();
+
+ // Test restart (this won't fully work without actual router dependencies)
+ let restart_result = manager.restart().await;
+ // This might fail due to missing dependencies, but the call should be accepted
+ println!("Restart result: {:?}", restart_result);
+}
+
+#[tokio::test]
+async fn test_router_status_functionality() {
+ let config = create_test_config(false); // Disable router for this test
+
+ let result = RouterManager::new(&config).await;
+ assert!(result.is_ok());
+
+ let manager = result.unwrap();
+
+ // Should not be running when router is disabled
+ assert_eq!(manager.is_running(), false);
+}
+
+// Helper function to create test configuration
+fn create_test_config(integrated_router_enabled: bool) -> Config {
+ Config {
+ repo: mesk::cfg::config::Repo {
+ repo_url: "https://mesk.anthrill.i2p/repo/x86_64/".to_string(),
+ auto_update: true,
+ destination: (String::from("mesk"), String::from("mesk")),
+ repo_http_url: Some("http://github.com/Anthrill/repo-mirror/x86_64".to_string()),
+ i2p_http_proxy_port: 4444,
+ },
+ log: mesk::cfg::config::Log {
+ log_file: "/tmp/mesk_test.log".to_string(),
+ log_level: mesk::cfg::config::Loglevel::Debug,
+ },
+ paths: mesk::cfg::config::Paths {
+ cache_dir: "/tmp/mesk_cache".to_string(),
+ build_dir: "/tmp/mesk_build".to_string(),
+ installed_db: "/tmp/mesk_pkgdb".to_string(),
+ },
+ router: RouterConfig {
+ integrated_router: integrated_router_enabled,
+ storage_path: "/tmp/mesk_test_router/".to_string(),
+ http_proxy_port: 4447,
+ socks_proxy_port: 4448,
+ auto_update: false,
+ },
+ }
+}