k9s/internal/config/data/helpers_test.go

92 lines
1.9 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of K9s
package data_test
import (
"os"
"path/filepath"
"slices"
"testing"
"github.com/derailed/k9s/internal/config/data"
"github.com/stretchr/testify/assert"
)
func TestSanitizeFileName(t *testing.T) {
uu := map[string]struct {
file, e string
}{
"empty": {},
"plain": {
file: "bumble-bee-tuna",
e: "bumble-bee-tuna",
},
"slash": {
file: "bumble/bee/tuna",
e: "bumble-bee-tuna",
},
"column": {
file: "bumble::bee:tuna",
e: "bumble-bee-tuna",
},
"eks": {
file: "arn:aws:eks:us-east-1:123456789:cluster/us-east-1-app-dev-common-eks",
e: "arn-aws-eks-us-east-1-123456789-cluster-us-east-1-app-dev-common-eks",
},
}
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
assert.Equal(t, u.e, data.SanitizeFileName(u.file))
})
}
}
func TestHelperInList(t *testing.T) {
uu := []struct {
item string
list []string
expected bool
}{
{"a", []string{}, false},
{"", []string{}, false},
{"", []string{""}, true},
{"a", []string{"a", "b", "c", "d"}, true},
{"z", []string{"a", "b", "c", "d"}, false},
}
for _, u := range uu {
assert.Equal(t, u.expected, slices.Contains(u.list, u.item))
}
}
func TestEnsureDirPathNone(t *testing.T) {
const mod = 0744
dir := filepath.Join("/tmp", "k9s-test")
_ = os.Remove(dir)
path := filepath.Join(dir, "duh.yaml")
assert.NoError(t, data.EnsureDirPath(path, mod))
p, err := os.Stat(dir)
assert.NoError(t, err)
assert.Equal(t, "drwxr--r--", p.Mode().String())
}
func TestEnsureDirPathNoOpt(t *testing.T) {
var mod os.FileMode = 0744
dir := filepath.Join("/tmp", "k9s-test")
assert.NoError(t, os.RemoveAll(dir))
assert.NoError(t, os.Mkdir(dir, mod))
path := filepath.Join(dir, "duh.yaml")
assert.NoError(t, data.EnsureDirPath(path, mod))
p, err := os.Stat(dir)
assert.NoError(t, err)
assert.Equal(t, "drwxr--r--", p.Mode().String())
}