63 lines
1.8 KiB
Go
63 lines
1.8 KiB
Go
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright Authors of K9s
|
|
|
|
package ui_test
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/derailed/k9s/internal/config"
|
|
"github.com/derailed/k9s/internal/config/data"
|
|
"github.com/derailed/k9s/internal/config/mock"
|
|
"github.com/derailed/k9s/internal/render"
|
|
"github.com/derailed/k9s/internal/ui"
|
|
"github.com/derailed/tcell/v2"
|
|
"github.com/stretchr/testify/assert"
|
|
"k8s.io/cli-runtime/pkg/genericclioptions"
|
|
)
|
|
|
|
func TestSkinnedContext(t *testing.T) {
|
|
os.Setenv(config.K9sEnvConfigDir, "/tmp/test-config")
|
|
|
|
assert.NoError(t, config.InitLocs())
|
|
defer assert.NoError(t, os.RemoveAll(config.K9sEnvConfigDir))
|
|
|
|
sf := filepath.Join("..", "config", "testdata", "black_and_wtf.yaml")
|
|
raw, err := os.ReadFile(sf)
|
|
assert.NoError(t, err)
|
|
tf := filepath.Join(config.AppSkinsDir, "black_and_wtf.yaml")
|
|
assert.NoError(t, os.WriteFile(tf, raw, data.DefaultFileMod))
|
|
|
|
var cfg ui.Configurator
|
|
cfg.Config = mock.NewMockConfig()
|
|
cl, ct := "cl-1", "ct-1"
|
|
flags := genericclioptions.ConfigFlags{
|
|
ClusterName: &cl,
|
|
Context: &ct,
|
|
}
|
|
|
|
cfg.Config.K9s = config.NewK9s(
|
|
mock.NewMockConnection(),
|
|
mock.NewMockKubeSettings(&flags))
|
|
_, err = cfg.Config.K9s.ActivateContext("ct-1-1")
|
|
assert.NoError(t, err)
|
|
cfg.Config.K9s.UI = config.UI{Skin: "black_and_wtf"}
|
|
cfg.RefreshStyles()
|
|
|
|
assert.True(t, cfg.HasSkin())
|
|
assert.Equal(t, tcell.ColorGhostWhite.TrueColor(), render.StdColor)
|
|
assert.Equal(t, tcell.ColorWhiteSmoke.TrueColor(), render.ErrColor)
|
|
}
|
|
|
|
func TestBenchConfig(t *testing.T) {
|
|
os.Setenv(config.K9sEnvConfigDir, "/tmp/test-config")
|
|
assert.NoError(t, config.InitLocs())
|
|
defer assert.NoError(t, os.RemoveAll(config.K9sEnvConfigDir))
|
|
|
|
bc, error := config.EnsureBenchmarksCfgFile("cl-1", "ct-1")
|
|
assert.NoError(t, error)
|
|
assert.Equal(t, "/tmp/test-config/clusters/cl-1/ct-1/benchmarks.yaml", bc)
|
|
}
|