test: add more tui tests

This commit is contained in:
Slug-Boi
2024-10-26 21:55:50 +02:00
parent aff8d49620
commit 04f5a50579
+152 -2
View File
@@ -6,6 +6,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/Slug-Boi/cocommit/src_code/go_src/cmd/utils"
tea "github.com/charmbracelet/bubbletea" tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/x/exp/teatest" "github.com/charmbracelet/x/exp/teatest"
) )
@@ -185,7 +186,7 @@ func Test_EntryCA(t *testing.T) {
// tui_author TESTS END // tui_author TESTS END
// tui_commit_message TESTS BEGIN // tui_commit_message TESTS BEGIN
func TestEntryCM(t *testing.T) { func Test_EntryCM(t *testing.T) {
setup() setup()
defer teardown() defer teardown()
@@ -210,4 +211,153 @@ func TestEntryCM(t *testing.T) {
t.Errorf("Expected 'test commit message', got %s", m.textarea.Value()) t.Errorf("Expected 'test commit message', got %s", m.textarea.Value())
} }
} }
// tui_commit_message TESTS END // tui_commit_message TESTS END
// tui_list TESTS BEGIN
func Test_EntrySelectUsers(t *testing.T) {
setup()
defer teardown()
utils.Define_users("author_file_test")
m := listModel()
tm := teatest.NewTestModel(
t, m, teatest.WithInitialTermSize(300, 300),
)
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune(" "),
})
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("enter"),
})
fm := tm.FinalModel(t)
m, ok := fm.(model)
if !ok {
t.Errorf("Expected model, got %T", fm)
}
if !m.quitting {
t.Errorf("Expected quitting to be true, got %v", m.quitting)
}
if len(selected) != 1 {
t.Errorf("Expected 1 selected item, got %d", len(selected))
}
}
func Test_EntrySelectAll(t *testing.T) {
setup()
defer teardown()
utils.Define_users("author_file_test")
m := listModel()
tm := teatest.NewTestModel(
t, m, teatest.WithInitialTermSize(300, 300),
)
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("A"),
})
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("enter"),
})
fm := tm.FinalModel(t)
m, ok := fm.(model)
if !ok {
t.Errorf("Expected model, got %T", fm)
}
if !m.quitting {
t.Errorf("Expected quitting to be true, got %v", m.quitting)
}
if len(selected) != 2 {
t.Errorf("Expected 2 selected item, got %d", len(selected))
}
}
func Test_EntryNegation(t *testing.T) {
setup()
defer teardown()
utils.Define_users("author_file_test")
m := listModel()
tm := teatest.NewTestModel(
t, m, teatest.WithInitialTermSize(300, 300),
)
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("n"),
})
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("enter"),
})
fm := tm.FinalModel(t)
m, ok := fm.(model)
if !ok {
t.Errorf("Expected model, got %T", fm)
}
if !m.quitting {
t.Errorf("Expected quitting to be true, got %v", m.quitting)
}
if len(selected) != 1 {
t.Errorf("Expected 2 selected item, got %d", len(selected))
}
}
func Test_EntryDeleteAuthor(t *testing.T) {
setup()
defer teardown()
utils.Define_users("author_file_test")
m := listModel()
tm := teatest.NewTestModel(
t, m, teatest.WithInitialTermSize(300, 300),
)
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("D"),
})
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("D"),
})
tm.Send(tea.KeyMsg{
Type: tea.KeyRunes,
Runes: []rune("enter"),
})
fm := tm.FinalModel(t)
m, ok := fm.(model)
if !ok {
t.Errorf("Expected model, got %T", fm)
}
if !m.quitting {
t.Errorf("Expected quitting to be true, got %v", m.quitting)
}
if len(utils.Users) != 2 {
t.Errorf("Expected 2 user after deletion, got %d", len(utils.Users))
}
}
// tui_list TESTS END