summaryrefslogtreecommitdiff
path: root/internal/hexaiaction/tui_test.go
blob: 0f7d0914fa82e2f2f049c9dc987ffbffda7a85b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package hexaiaction

import (
    "testing"

    tea "github.com/charmbracelet/bubbletea"
)

func TestHandleKey_EscSkips(t *testing.T) {
    m := newModel()
    nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyEsc})
    got, ok := nm.(model)
    if !ok || !got.done || got.chosen != ActionSkip {
        t.Fatalf("esc should skip: ok=%v done=%v chosen=%v", ok, got.done, got.chosen)
    }
}

func TestHandleKey_QuickHotkey(t *testing.T) {
    m := newModel()
    nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'r'}})
    got := nm.(model)
    if !got.done || got.chosen != ActionRewrite {
        t.Fatalf("r should choose rewrite: done=%v chosen=%v", got.done, got.chosen)
    }
}

func TestHandleKey_JumpEndWithG(t *testing.T) {
    m := newModel()
    // raw 'G' rune should jump to end (special cased)
    nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'G'}})
    got := nm.(model)
    if idx := got.list.Index(); idx != len(got.list.Items())-1 {
        t.Fatalf("G should jump to end, index=%d", idx)
    }
}