73 lines
2.2 KiB
Rust
73 lines
2.2 KiB
Rust
//! Extension Loading Tests
|
|
|
|
use provisioning_orchestrator::extensions::{ExtensionManager, ExtensionType, ExtensionMetadata};
|
|
|
|
#[tokio::test]
|
|
async fn test_extension_manager_initialization() {
|
|
let manager = ExtensionManager::new(
|
|
"/usr/local/bin/nu".to_string(),
|
|
"/usr/local/bin/provisioning".to_string(),
|
|
);
|
|
|
|
let loaded = manager.list_loaded_extensions().await;
|
|
assert_eq!(loaded.len(), 0);
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_extension_type_display() {
|
|
assert_eq!(ExtensionType::Provider.to_string(), "provider");
|
|
assert_eq!(ExtensionType::Taskserv.to_string(), "taskserv");
|
|
assert_eq!(ExtensionType::Cluster.to_string(), "cluster");
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_extension_cache_clear() {
|
|
let manager = ExtensionManager::new(
|
|
"/usr/local/bin/nu".to_string(),
|
|
"/usr/local/bin/provisioning".to_string(),
|
|
);
|
|
|
|
// Clear empty cache should succeed
|
|
manager.clear_cache().await;
|
|
|
|
let loaded = manager.list_loaded_extensions().await;
|
|
assert_eq!(loaded.len(), 0);
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_extension_metadata_creation() {
|
|
let metadata = ExtensionMetadata {
|
|
name: "kubernetes".to_string(),
|
|
version: "1.28.0".to_string(),
|
|
description: "Kubernetes container orchestrator".to_string(),
|
|
extension_type: ExtensionType::Taskserv,
|
|
dependencies: vec!["containerd".to_string(), "etcd".to_string()],
|
|
author: Some("provisioning-team".to_string()),
|
|
repository: None,
|
|
};
|
|
|
|
assert_eq!(metadata.name, "kubernetes");
|
|
assert_eq!(metadata.version, "1.28.0");
|
|
assert_eq!(metadata.extension_type, ExtensionType::Taskserv);
|
|
assert_eq!(metadata.dependencies.len(), 2);
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_is_extension_loaded() {
|
|
let manager = ExtensionManager::new(
|
|
"/usr/local/bin/nu".to_string(),
|
|
"/usr/local/bin/provisioning".to_string(),
|
|
);
|
|
|
|
// Nothing loaded initially
|
|
let is_loaded = manager.is_extension_loaded(ExtensionType::Taskserv, "kubernetes").await;
|
|
assert!(!is_loaded);
|
|
}
|
|
|
|
#[test]
|
|
fn test_extension_type_equality() {
|
|
assert_eq!(ExtensionType::Provider, ExtensionType::Provider);
|
|
assert_ne!(ExtensionType::Provider, ExtensionType::Taskserv);
|
|
assert_ne!(ExtensionType::Taskserv, ExtensionType::Cluster);
|
|
}
|