Skip to content

Commit 5dc257c

Browse files
committed
Skip error if kubeconfig file does not exist when deleting it
- During first time setup kubeconfig file will not be present so it doesn't make sense to throw error
1 parent a02ebbf commit 5dc257c

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

pkg/kubeconfig/kubeconfig.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package kubeconfig
22

33
import (
4+
"os"
45
"path"
56

67
"github.com/arunvelsriram/kube-tmuxp/pkg/filesystem"
@@ -16,7 +17,7 @@ type KubeConfig struct {
1617
func (k *KubeConfig) Delete(context string) error {
1718
file := path.Join(k.dir, context)
1819

19-
if err := k.filesystem.Remove(file); err != nil {
20+
if err := k.filesystem.Remove(file); err != nil && !os.IsNotExist(err) {
2021
return err
2122
}
2223

pkg/kubeconfig/kubeconfig_test.go

+16-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package kubeconfig_test
22

33
import (
44
"fmt"
5+
"os"
56
"testing"
67

78
"github.com/arunvelsriram/kube-tmuxp/pkg/internal/mock"
@@ -51,7 +52,21 @@ func TestDelete(t *testing.T) {
5152
assert.Nil(t, err)
5253
})
5354

54-
t.Run("should return error if kubeconfig file cannot be deleted", func(t *testing.T) {
55+
t.Run("should skip error arises when deleting kubeconfig file that does not exist", func(t *testing.T) {
56+
ctrl := gomock.NewController(t)
57+
defer ctrl.Finish()
58+
59+
mockFS := mock.NewFileSystem(ctrl)
60+
mockFS.EXPECT().HomeDir().Return("/Users/test", nil)
61+
mockFS.EXPECT().Remove("/Users/test/.kube/configs/context-name").Return(&os.PathError{Op: "remove", Path: "/Users/test/.kube/configs/context-name", Err: os.ErrNotExist})
62+
63+
kubeCfg, _ := kubeconfig.New(mockFS)
64+
err := kubeCfg.Delete("context-name")
65+
66+
assert.Nil(t, err)
67+
})
68+
69+
t.Run("should return error if error occurs when deleting the kubeconfig file", func(t *testing.T) {
5570
ctrl := gomock.NewController(t)
5671
defer ctrl.Finish()
5772

0 commit comments

Comments
 (0)