MCPcopy
hub / github.com/matryer/xbar / TestNestedSeparators

Function TestNestedSeparators

pkg/plugins/parse_test.go:156–198  ·  view source on GitHub ↗

TestNestedSeparators ensures separators work inside submenus. https://github.com/matryer/xbar/issues/648

(t *testing.T)

Source from the content-addressed store, hash-verified

154// TestNestedSeparators ensures separators work inside submenus.
155// https://github.com/matryer/xbar/issues/648
156func TestNestedSeparators(t *testing.T) {
157 is := is.New(t)
158
159 src := `a
160---
161b
162--c
163-----
164--d
165----e
166-------
167----f
168-----
169--g
170---
171h`
172
173 p := &Plugin{}
174 items, err := p.parseOutput(context.Background(), "nesting.txt", strings.NewReader(src))
175 is.NoErr(err)
176
177 is.Equal(len(items.ExpandedItems), 3)
178
179 // root items
180 is.Equal(items.ExpandedItems[0].Text, "b")
181 is.Equal(items.ExpandedItems[1].Params.Separator, true)
182 is.Equal(items.ExpandedItems[2].Text, "h")
183
184 // b submenu
185 is.Equal(len(items.ExpandedItems[0].Items), 5)
186 is.Equal(items.ExpandedItems[0].Items[0].Text, "c")
187 is.Equal(items.ExpandedItems[0].Items[1].Params.Separator, true) // should be separator
188 is.Equal(items.ExpandedItems[0].Items[2].Text, "d")
189 is.Equal(items.ExpandedItems[0].Items[3].Params.Separator, true)
190 is.Equal(items.ExpandedItems[0].Items[4].Text, "g")
191
192 // d submenu
193 is.Equal(len(items.ExpandedItems[0].Items[2].Items), 3)
194 is.Equal(items.ExpandedItems[0].Items[2].Items[0].Text, "e")
195 is.Equal(items.ExpandedItems[0].Items[2].Items[1].Params.Separator, true)
196 is.Equal(items.ExpandedItems[0].Items[2].Items[2].Text, "f")
197
198}
199
200func TestParseSeparator(t *testing.T) {
201 is := is.New(t)

Callers

nothing calls this directly

Calls 1

parseOutputMethod · 0.95

Tested by

no test coverage detected