| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package main
- import (
- "pingo"
- "strings"
- "testing"
- tea "charm.land/bubbletea/v2"
- "charm.land/lipgloss/v2"
- "github.com/stretchr/testify/assert"
- )
- func spawnMD(hosts []string, width, height, chartHeight int) md {
- return md{p: pingo.InitialPeakBubble(hosts, width, height, chartHeight)}
- }
- func Test_md_Init(t *testing.T) {
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- cmd := testMD.Init()
- assert.IsType(t, *new(timingMsg), cmd())
- }
- func Test_md_Update_handle_windowsize(t *testing.T) {
- testMsg := tea.WindowSizeMsg{Width: 80, Height: 80}
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- assert.Equal(t, 40, testMD.p.Width)
- assert.Equal(t, 20, testMD.p.Height)
- assert.Equal(t, 0, testMD.viewport.Width())
- assert.Equal(t, 0, testMD.viewport.Height())
- model, cmd := testMD.Update(testMsg)
- assert.Nil(t, cmd)
- assert.Equal(t, 80, model.(md).p.Width)
- assert.Equal(t, 80-2, model.(md).p.Height)
- }
- func Test_md_Update_handle_keymsg(t *testing.T) {
- testKeyMsg := tea.KeyPressMsg(tea.Key{Text: "ctrl+c"})
- // getTestKey := func() tea.Msg { return testKey }
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- var cmd tea.Cmd
- _, cmd = testMD.Update(testKeyMsg)
- assert.NotNil(t, cmd)
- assert.IsType(t, *new(tea.QuitMsg), cmd())
- }
- func Test_md_Update_handle_timing(t *testing.T) {
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- _, cmd := testMD.Update(tea.Msg(timingMsg{}))
- assert.NotNil(t, cmd())
- // assert.IsType(t, *new(tea.BatchMsg), cmd())
- // batch := []tea.Cmd(cmd().(tea.BatchMsg))
- // assert.True(t, len(batch) == 2)
- // for _, cmd := range batch {
- // if value, ok := cmd().(timingMsg); ok {
- // assert.WithinDuration(t, time.Now(), time.Time(value), time.Second*1)
- // }
- // }
- }
- func Test_md_View(t *testing.T) {
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- view := testMD.View()
- assert.True(t, strings.Contains(view.Content, testMD.header()))
- assert.True(t, strings.Contains(view.Content, testMD.footer()))
- assert.True(t, strings.Contains(view.Content, testMD.viewport.GetContent()))
- }
- func Test_md_header(t *testing.T) {
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- testData := testMD.header()
- assert.IsType(t, *new(string), testData)
- assert.True(t, lipgloss.Width(testData) > 1)
- assert.True(t, strings.Contains(testData, "pingo"))
- }
- func Test_md_footer(t *testing.T) {
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- testData := testMD.footer()
- assert.IsType(t, *new(string), testData)
- assert.True(t, lipgloss.Width(testData) > 1)
- assert.True(t, strings.Contains(testData, "j/k: down/up"), testData)
- assert.True(t, strings.Contains(testData, "ctrl+c: quit"), testData)
- }
- func Test_md_getVerticalMargin(t *testing.T) {
- testMD := spawnMD([]string{"127.0.0.1"}, 40, 20, 10)
- assert.Equal(t, lipgloss.Height(testMD.header()+testMD.footer()), testMD.getVerticalMargin())
- }
|