41 lines
925 B
Go
41 lines
925 B
Go
package ui_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/derailed/k9s/internal/config"
|
|
"github.com/derailed/k9s/internal/model"
|
|
"github.com/derailed/k9s/internal/ui"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFlash(t *testing.T) {
|
|
const delay = 10 * time.Millisecond
|
|
uu := map[string]struct {
|
|
l model.FlashLevel
|
|
i, e string
|
|
}{
|
|
"info": {l: model.FlashInfo, i: "hello", e: "😎 hello\n"},
|
|
"warn": {l: model.FlashWarn, i: "hello", e: "😗 hello\n"},
|
|
"err": {l: model.FlashErr, i: "hello", e: "😡 hello\n"},
|
|
}
|
|
|
|
a := ui.NewApp(config.NewConfig(nil), "test")
|
|
f := ui.NewFlash(a)
|
|
f.SetTestMode(true)
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
go f.Watch(ctx, a.Flash().Channel())
|
|
|
|
for k := range uu {
|
|
u := uu[k]
|
|
t.Run(k, func(t *testing.T) {
|
|
a.Flash().SetMessage(u.l, u.i)
|
|
time.Sleep(delay)
|
|
assert.Equal(t, u.e, f.GetText(false))
|
|
})
|
|
}
|
|
}
|