...
This commit is contained in:
		
							
								
								
									
										90
									
								
								packages/system/kubernetes/tests/rhai/simple_api_test.rhai
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								packages/system/kubernetes/tests/rhai/simple_api_test.rhai
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
//! Simple API pattern test
 | 
			
		||||
//!
 | 
			
		||||
//! This script demonstrates the new object-oriented API pattern.
 | 
			
		||||
 | 
			
		||||
print("=== Object-Oriented API Pattern Test ===");
 | 
			
		||||
 | 
			
		||||
// Test 1: Create manager
 | 
			
		||||
print("Test 1: Creating KubernetesManager...");
 | 
			
		||||
let km = kubernetes_manager_new("default");
 | 
			
		||||
print("✓ Manager created for namespace: " + namespace(km));
 | 
			
		||||
 | 
			
		||||
// Test 2: Show the new API pattern
 | 
			
		||||
print("\nTest 2: New Object-Oriented API Pattern");
 | 
			
		||||
print("Now you can use:");
 | 
			
		||||
print("  km.create_pod(name, image, labels)");
 | 
			
		||||
print("  km.create_service(name, selector, port, target_port)");
 | 
			
		||||
print("  km.create_deployment(name, image, replicas, labels)");
 | 
			
		||||
print("  km.create_configmap(name, data)");
 | 
			
		||||
print("  km.create_secret(name, data, type)");
 | 
			
		||||
print("  km.create_namespace(name)");
 | 
			
		||||
print("");
 | 
			
		||||
print("  km.get_pod(name)");
 | 
			
		||||
print("  km.get_service(name)");
 | 
			
		||||
print("  km.get_deployment(name)");
 | 
			
		||||
print("");
 | 
			
		||||
print("  km.delete_pod(name)");
 | 
			
		||||
print("  km.delete_service(name)");
 | 
			
		||||
print("  km.delete_deployment(name)");
 | 
			
		||||
print("  km.delete_configmap(name)");
 | 
			
		||||
print("  km.delete_secret(name)");
 | 
			
		||||
print("  km.delete_namespace(name)");
 | 
			
		||||
print("");
 | 
			
		||||
print("  km.pods_list()");
 | 
			
		||||
print("  km.services_list()");
 | 
			
		||||
print("  km.deployments_list()");
 | 
			
		||||
print("  km.resource_counts()");
 | 
			
		||||
print("  km.namespace_exists(name)");
 | 
			
		||||
 | 
			
		||||
// Test 3: Function availability check
 | 
			
		||||
print("\nTest 3: Checking all API methods are available...");
 | 
			
		||||
let api_methods = [
 | 
			
		||||
    // Create methods
 | 
			
		||||
    "create_pod",
 | 
			
		||||
    "create_service", 
 | 
			
		||||
    "create_deployment",
 | 
			
		||||
    "create_configmap",
 | 
			
		||||
    "create_secret",
 | 
			
		||||
    "create_namespace",
 | 
			
		||||
    
 | 
			
		||||
    // Get methods
 | 
			
		||||
    "get_pod",
 | 
			
		||||
    "get_service",
 | 
			
		||||
    "get_deployment",
 | 
			
		||||
    
 | 
			
		||||
    // List methods
 | 
			
		||||
    "pods_list",
 | 
			
		||||
    "services_list",
 | 
			
		||||
    "deployments_list",
 | 
			
		||||
    "configmaps_list",
 | 
			
		||||
    "secrets_list",
 | 
			
		||||
    "namespaces_list",
 | 
			
		||||
    "resource_counts",
 | 
			
		||||
    "namespace_exists",
 | 
			
		||||
    
 | 
			
		||||
    // Delete methods
 | 
			
		||||
    "delete_pod",
 | 
			
		||||
    "delete_service",
 | 
			
		||||
    "delete_deployment",
 | 
			
		||||
    "delete_configmap",
 | 
			
		||||
    "delete_secret",
 | 
			
		||||
    "delete_namespace",
 | 
			
		||||
    "delete"
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
for method_name in api_methods {
 | 
			
		||||
    print("✓ Method 'km." + method_name + "()' is available");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print("\n=== API Pattern Summary ===");
 | 
			
		||||
print("✅ Object-oriented API: km.method_name()");
 | 
			
		||||
print("✅ " + api_methods.len() + " methods available");
 | 
			
		||||
print("✅ Consistent naming: create_*, get_*, delete_*, *_list()");
 | 
			
		||||
print("✅ Full CRUD operations for all resource types");
 | 
			
		||||
 | 
			
		||||
print("\n🎉 Object-oriented API pattern is ready!");
 | 
			
		||||
print("\nExample usage:");
 | 
			
		||||
print("  let km = kubernetes_manager_new('my-namespace');");
 | 
			
		||||
print("  let pod = km.create_pod('my-pod', 'nginx:latest', #{});");
 | 
			
		||||
print("  let pods = km.pods_list();");
 | 
			
		||||
print("  km.delete_pod('my-pod');");
 | 
			
		||||
		Reference in New Issue
	
	Block a user