48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package mujica
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/egoist/mygo/ui"
|
|
)
|
|
|
|
func TestPinnedMessages(t *testing.T) {
|
|
pins := []ChatEntry{{ID: "a", Author: "Sakiko", Text: "Rehearsal moves to nine."}, {ID: "b", Author: "Uika", Text: "Masks are in the hall."}}
|
|
var jumps, unpins []string
|
|
tt := ui.NewTester(func(c *ui.Context) {
|
|
Use(c, Settings{})
|
|
ui.Column(c).Width(420).Children(func() {
|
|
r := PinnedMessages(c, pins, PinnedMessagesOptions{})
|
|
if r.Jump != "" {
|
|
jumps = append(jumps, r.Jump)
|
|
}
|
|
if r.Unpinned != "" {
|
|
unpins = append(unpins, r.Unpinned)
|
|
}
|
|
})
|
|
}, 500, 400)
|
|
if !tt.HasText("Pinned messages (2)") {
|
|
t.Fatalf("texts %v", tt.Texts())
|
|
}
|
|
tt.Key(0, ui.KeyTab)
|
|
tt.Key(0, ui.KeyEnter)
|
|
if err := tt.Click("Unpin Uika's message"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(jumps) != 1 || jumps[0] != "a" || len(unpins) != 1 || unpins[0] != "b" {
|
|
t.Fatalf("jumps %v unpins %v", jumps, unpins)
|
|
}
|
|
pins = nil
|
|
tt.Frame()
|
|
if !tt.HasText("No pinned messages") {
|
|
t.Fatal("no empty state")
|
|
}
|
|
}
|
|
|
|
func TestPinnedMessagesSnapshot(t *testing.T) {
|
|
pins := []ChatEntry{{ID: "a", Author: "Sakiko", Text: "Rehearsal moves to nine."}, {ID: "b", Author: "Uika", Text: "Masks are in the hall."}}
|
|
snapshot(t, "pinned_messages", 440, 200, func(c *ui.Context) {
|
|
ui.Column(c).Padding(20).Width(400).Children(func() { PinnedMessages(c, pins, PinnedMessagesOptions{}) })
|
|
})
|
|
}
|