56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
package mujica
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/egoist/mygo/ui"
|
|
)
|
|
|
|
func TestMessageHeaderFieldsAndStatus(t *testing.T) {
|
|
at := time.Date(2026, 3, 1, 14, 5, 0, 0, time.UTC)
|
|
for status, want := range map[MessageStatus]string{
|
|
MessageSending: "Sending", MessageStreaming: "Generating", MessageSent: "Sent", MessageFailed: "Failed",
|
|
} {
|
|
tt := ui.NewTester(func(c *ui.Context) {
|
|
Use(c, Settings{Locale: EnUS})
|
|
MessageHeader(c, MessageHeaderOptions{Model: "claude", Time: at, Status: status})
|
|
}, 400, 100)
|
|
for _, s := range []string{"claude", "14:05", want} {
|
|
if !tt.HasText(s) {
|
|
t.Errorf("status %v: missing %q in %q", status, s, tt.Texts())
|
|
}
|
|
}
|
|
}
|
|
tt := ui.NewTester(func(c *ui.Context) {
|
|
Use(c, Settings{})
|
|
MessageHeader(c, MessageHeaderOptions{})
|
|
}, 400, 100)
|
|
if len(tt.Texts()) != 0 {
|
|
t.Fatalf("zero header shows %q", tt.Texts())
|
|
}
|
|
}
|
|
|
|
func TestMessageHeaderUnknownStatus(t *testing.T) {
|
|
defer func() {
|
|
if recover() == nil {
|
|
t.Fatal("no panic for an unknown status")
|
|
}
|
|
}()
|
|
ui.NewTester(func(c *ui.Context) {
|
|
Use(c, Settings{})
|
|
MessageHeader(c, MessageHeaderOptions{Status: 99})
|
|
}, 100, 100)
|
|
}
|
|
|
|
func TestMessageHeaderSnapshot(t *testing.T) {
|
|
at := time.Date(2026, 3, 1, 21, 30, 0, 0, time.UTC)
|
|
snapshot(t, "message_header", 360, 150, func(c *ui.Context) {
|
|
ui.Column(c).Padding(16).Gap(12).Children(func() {
|
|
for _, s := range []MessageStatus{MessageSending, MessageStreaming, MessageSent, MessageFailed} {
|
|
MessageHeader(c, MessageHeaderOptions{Model: "herald-2", Time: at, Status: s})
|
|
}
|
|
})
|
|
})
|
|
}
|