TestNestedSeparators ensures separators work inside submenus. https://github.com/matryer/xbar/issues/648
(t *testing.T)
| 154 | // TestNestedSeparators ensures separators work inside submenus. |
| 155 | // https://github.com/matryer/xbar/issues/648 |
| 156 | func TestNestedSeparators(t *testing.T) { |
| 157 | is := is.New(t) |
| 158 | |
| 159 | src := `a |
| 160 | --- |
| 161 | b |
| 162 | --c |
| 163 | ----- |
| 164 | --d |
| 165 | ----e |
| 166 | ------- |
| 167 | ----f |
| 168 | ----- |
| 169 | --g |
| 170 | --- |
| 171 | h` |
| 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 | |
| 200 | func TestParseSeparator(t *testing.T) { |
| 201 | is := is.New(t) |
nothing calls this directly
no test coverage detected