package kubectl import ( "os" "path/filepath" "errors" "testing" "github.com/stretchr/testify/assert" ) var MOCK_ENABLE = true func TestKubectCurrentContext(t *testing.T) { cmd := getCmdKubectl(MOCK_ENABLE, "minikube") res, err := cmd.GetCurrentContext() assert.Nilf(t, err, "error message %s", err) assert.Equal(t, "minikube", res, "TestKubectCurrentContext error") } func TestKubectContext(t *testing.T) { fileName := filepath.Join(TEST_SRC_DIR, "context.json") cmd_json, _ := os.ReadFile(fileName) cmd := getCmdKubectl(MOCK_ENABLE, string(cmd_json)) currentContext, currentNamespace, currentServer, err := cmd.GetContext() assert.Nilf(t, err, "error message %s", err) assert.Equal(t, "minikube", currentContext, "TestKubectContext error") assert.Equal(t, "default", currentNamespace, "TestKubectContext error") assert.Equal(t, "https://127.0.0.1:38039", currentServer, "TestKubectContext error") } func TestKubectUseContext(t *testing.T) { cmd := getCmdKubectl(MOCK_ENABLE, `Switched to context "minikube".`) err := cmd.UseContext("minikube") assert.Nilf(t, err, "error message %s", err) } func TestKubectUseContextErr(t *testing.T) { error := errors.New("exit 1") cmd := getCmdKubectlError(MOCK_ENABLE, `error: no context exists with the name: "minikube2"`, error) err := cmd.UseContext("minikube2") assert.NotNilf(t, err, "error message %s", err) } func TestKubectCheck(t *testing.T) { cmd_txt := ` Kubernetes control plane is running at https://127.0.0.1:38039 CoreDNS is running at https://127.0.0.1:38039/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. ` // error := errors.New("exit 1") cmd := getCmdKubectl(MOCK_ENABLE, cmd_txt) err := cmd.Check() assert.Nilf(t, err, "error message %s", err) } func TestKubectCheckErr(t *testing.T) { cmd_txt := "" error := errors.New("exit 1") cmd := getCmdKubectlError(MOCK_ENABLE, cmd_txt, error) err := cmd.Check() assert.NotNilf(t, err, "error message %s", "TestKubectCheckErr") }