Initial commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package tui
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"billboard/internal/server"
|
||||
"billboard/internal/state"
|
||||
)
|
||||
|
||||
func TestFetchDecodesPixels(t *testing.T) {
|
||||
st := state.New(8, 4)
|
||||
if err := st.SetPixel(3, 2, 9); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
st.AddMessage("test msg")
|
||||
srv := httptest.NewServer(server.New(st, server.Config{}).Handler())
|
||||
defer srv.Close()
|
||||
|
||||
d := &Display{server: srv.URL, client: &http.Client{Timeout: 5 * time.Second}}
|
||||
if err := d.fetch(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got := d.state.Pixels[2][3]; got != 9 {
|
||||
t.Fatalf("pixel = %d, want 9; state=%+v", got, d.state)
|
||||
}
|
||||
if len(d.state.Messages) != 1 || d.state.Messages[0].Text != "test msg" {
|
||||
t.Fatalf("messages = %+v", d.state.Messages)
|
||||
}
|
||||
|
||||
f, err := os.CreateTemp(t.TempDir(), "render")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer f.Close()
|
||||
d.out = f
|
||||
d.render()
|
||||
data, err := os.ReadFile(f.Name())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !strings.Contains(string(data), "91") && !strings.Contains(string(data), "101") {
|
||||
t.Fatalf("render output lacks color-9 SGR code; block count: %d", strings.Count(string(data), "▀"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user