list_test.go

 1package list
 2
 3import (
 4	"testing"
 5)
 6
 7func TestNewList(t *testing.T) {
 8	items := []Item{
 9		NewStringItem("Item 1"),
10		NewStringItem("Item 2"),
11		NewStringItem("Item 3"),
12	}
13
14	var defaultRend DefaultItemRenderer
15	list := New(&defaultRend, items...)
16
17	if list.Len() != len(items) {
18		t.Errorf("expected list count %d, got %d", len(items), list.Len())
19	}
20
21	rendered := list.Render()
22	expected := "Item 1\nItem 2\nItem 3"
23	if rendered != expected {
24		t.Errorf("expected rendered output:\n%s\ngot:\n%s", expected, rendered)
25	}
26}
27
28func TestListAppend(t *testing.T) {
29	var defaultRend DefaultItemRenderer
30	list := New(&defaultRend,
31		NewStringItem("Item 1"),
32	)
33
34	list.Append(
35		NewStringItem("Item 2"),
36		NewStringItem("Item 3"),
37	)
38
39	if list.Len() != 3 {
40		t.Errorf("expected list count 3, got %d", list.Len())
41	}
42
43	rendered := list.Render()
44	expected := "Item 1\nItem 2\nItem 3"
45	if rendered != expected {
46		t.Errorf("expected rendered output:\n%s\ngot:\n%s", expected, rendered)
47	}
48}
49
50func TestListUpdate(t *testing.T) {
51	var defaultRend DefaultItemRenderer
52	list := New(&defaultRend,
53		NewStringItem("Item 1"),
54		NewStringItem("Item 2"),
55	)
56
57	updated := list.Update(1, NewStringItem("Updated Item 2"))
58	if !updated {
59		t.Errorf("expected update to succeed")
60	}
61
62	rendered := list.Render()
63	expected := "Item 1\nUpdated Item 2"
64	if rendered != expected {
65		t.Errorf("expected rendered output:\n%s\ngot:\n%s", expected, rendered)
66	}
67}
68
69func TestListDelete(t *testing.T) {
70	var defaultRend DefaultItemRenderer
71	list := New(&defaultRend,
72		NewStringItem("Item 1"),
73		NewStringItem("Item 2"),
74		NewStringItem("Item 3"),
75	)
76
77	deleted := list.Delete(1)
78	if !deleted {
79		t.Errorf("expected delete to succeed")
80	}
81
82	if list.Len() != 2 {
83		t.Errorf("expected list count 2, got %d", list.Len())
84	}
85
86	rendered := list.Render()
87	expected := "Item 1\nItem 3"
88	if rendered != expected {
89		t.Errorf("expected rendered output:\n%s\ngot:\n%s", expected, rendered)
90	}
91}