page_test.go (2536B)
1 package render 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "git.defalsify.org/vise.git/cache" 9 "git.defalsify.org/vise.git/internal/resourcetest" 10 ) 11 12 func TestPageCurrentSize(t *testing.T) { 13 t.Skip("usage is not in use, and it is unclear how it should be calculated") 14 ca := cache.NewCache() 15 pg := NewPage(ca, nil) 16 err := ca.Push() 17 if err != nil { 18 t.Error(err) 19 } 20 err = ca.Add("foo", "inky", 0) 21 if err != nil { 22 t.Error(err) 23 } 24 err = ca.Push() 25 pg.Reset() 26 err = ca.Add("bar", "pinky", 10) 27 if err != nil { 28 t.Error(err) 29 } 30 err = ca.Add("baz", "tinkywinkydipsylalapoo", 51) 31 if err != nil { 32 t.Error(err) 33 } 34 err = pg.Map("foo") 35 if err != nil { 36 t.Error(err) 37 } 38 err = pg.Map("bar") 39 if err != nil { 40 t.Error(err) 41 } 42 err = pg.Map("baz") 43 if err != nil { 44 t.Error(err) 45 } 46 l, c, err := pg.Usage() 47 if err != nil { 48 t.Error(err) 49 } 50 if l != 27 { 51 t.Errorf("expected actual length 27, got %v", l) 52 } 53 if c != 34 { 54 t.Errorf("expected remaining length 34, got %v", c) 55 } 56 57 mn := NewMenu() //.WithOutputSize(32) 58 pg = pg.WithMenu(mn) 59 l, c, err = pg.Usage() 60 if err != nil { 61 t.Error(err) 62 } 63 if l != 59 { 64 t.Errorf("expected actual length 59, got %v", l) 65 } 66 if c != 2 { 67 t.Errorf("expected remaining length 2, got %v", c) 68 } 69 } 70 71 func TestStateMapSink(t *testing.T) { 72 ca := cache.NewCache() 73 pg := NewPage(ca, nil) 74 ca.Push() 75 err := ca.Add("foo", "bar", 0) 76 if err != nil { 77 t.Error(err) 78 } 79 ca.Push() 80 pg.Reset() 81 err = ca.Add("bar", "xyzzy", 6) 82 if err != nil { 83 t.Error(err) 84 } 85 err = ca.Add("baz", "bazbaz", 18) 86 if err != nil { 87 t.Error(err) 88 } 89 err = ca.Add("xyzzy", "plugh", 0) 90 if err != nil { 91 t.Error(err) 92 } 93 err = pg.Map("foo") 94 if err != nil { 95 t.Error(err) 96 } 97 err = pg.Map("xyzzy") 98 if err == nil { 99 t.Errorf("Expected fail on duplicate sink") 100 } 101 err = pg.Map("baz") 102 if err != nil { 103 t.Error(err) 104 } 105 ca.Push() 106 pg.Reset() 107 err = pg.Map("foo") 108 if err != nil { 109 t.Error(err) 110 } 111 ca.Pop() 112 pg.Reset() 113 err = pg.Map("foo") 114 if err != nil { 115 t.Error(err) 116 } 117 } 118 119 func TestWithError(t *testing.T) { 120 ctx := context.Background() 121 ca := cache.NewCache() 122 rs := resourcetest.NewTestResource() 123 rs.AddTemplate(ctx, "foo", "bar") 124 rs.Lock() 125 pg := NewPage(ca, rs) 126 ca.Push() 127 128 mn := NewMenu() 129 err := mn.Put("0", "aiee") 130 if err != nil { 131 t.Fatal(err) 132 } 133 err = fmt.Errorf("my humps") 134 pg = pg.WithMenu(mn).WithError(err) 135 136 r, err := pg.Render(ctx, "foo", 0) 137 if err != nil { 138 t.Fatal(err) 139 } 140 expect := `my humps 141 bar 142 0:aiee` 143 if r != expect { 144 t.Fatalf("expected:\n\t%s\ngot:\n\t%s", expect, r) 145 } 146 }