From 7e88d469d68ecd9af3f6cdf44b15d2751d1868c5 Mon Sep 17 00:00:00 2001 From: Aviram Hassan Date: Mon, 6 Nov 2023 14:44:58 +0200 Subject: [PATCH] tests --- kube-client/src/config/file_config.rs | 48 ++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/kube-client/src/config/file_config.rs b/kube-client/src/config/file_config.rs index c6f35bea6..1f051f0ca 100644 --- a/kube-client/src/config/file_config.rs +++ b/kube-client/src/config/file_config.rs @@ -658,8 +658,10 @@ mod base64serde { #[cfg(test)] mod tests { + use crate::config::file_loader::ConfigLoader; + use super::*; - use serde_json::Value; + use serde_json::{json, Value}; use std::str::FromStr; #[test] @@ -917,4 +919,48 @@ password: kube_rs assert_eq!(authinfo_debug_output, expected_output) } + + #[tokio::test] + async fn authinfo_exec_provide_cluster_info() { + let config = r#" +apiVersion: v1 +clusters: +- cluster: + server: https://localhost:8080 + extensions: + - name: client.authentication.k8s.io/exec + extension: + audience: foo + other: bar + name: foo-cluster +contexts: +- context: + cluster: foo-cluster + user: foo-user + namespace: bar + name: foo-context +current-context: foo-context +kind: Config +users: +- name: foo-user + user: + exec: + apiVersion: client.authentication.k8s.io/v1alpha1 + args: + - arg-1 + - arg-2 + command: foo-command + provideClusterInfo: true +"#; + let kube_config = Kubeconfig::from_yaml(config).unwrap(); + let config_loader = ConfigLoader::load(kube_config, None, None, None).await.unwrap(); + let auth_info = config_loader.user; + let exec = auth_info.exec.unwrap(); + assert!(exec.provide_cluster_info); + let cluster = exec.cluster.unwrap(); + assert_eq!( + cluster.config.unwrap(), + json!({"audience": "foo", "other": "bar"}) + ); + } }