| Tim Windelschmidt | 6d33a43 | 2025-02-04 14:34:25 +0100 | [diff] [blame] | 1 | // Copyright The Monogon Project Authors. |
| 2 | // SPDX-License-Identifier: Apache-2.0 |
| 3 | |
| Serge Bazanski | e0c0617 | 2023-09-19 12:28:16 +0000 | [diff] [blame] | 4 | package clitable |
| Serge Bazanski | 504ea31 | 2023-03-22 17:47:48 +0100 | [diff] [blame] | 5 | |
| 6 | import ( |
| 7 | "bytes" |
| 8 | "strings" |
| 9 | "testing" |
| 10 | ) |
| 11 | |
| 12 | // TestTableLayout performs a smoke test of the table layout functionality. |
| 13 | func TestTableLayout(t *testing.T) { |
| Tim Windelschmidt | 3b5a917 | 2024-05-23 13:33:52 +0200 | [diff] [blame] | 14 | var tab Table |
| Serge Bazanski | 504ea31 | 2023-03-22 17:47:48 +0100 | [diff] [blame] | 15 | |
| Tim Windelschmidt | 3b5a917 | 2024-05-23 13:33:52 +0200 | [diff] [blame] | 16 | var e Entry |
| Serge Bazanski | e0c0617 | 2023-09-19 12:28:16 +0000 | [diff] [blame] | 17 | e.Add("id", "short") |
| 18 | e.Add("labels", "") |
| 19 | tab.Add(e) |
| Serge Bazanski | 504ea31 | 2023-03-22 17:47:48 +0100 | [diff] [blame] | 20 | |
| Serge Bazanski | e0c0617 | 2023-09-19 12:28:16 +0000 | [diff] [blame] | 21 | e = Entry{} |
| 22 | e.Add("whoops", "only in second") |
| 23 | e.Add("labels", "bar") |
| 24 | e.Add("id", "this one is a very long one") |
| 25 | tab.Add(e) |
| Serge Bazanski | 504ea31 | 2023-03-22 17:47:48 +0100 | [diff] [blame] | 26 | |
| Serge Bazanski | e0c0617 | 2023-09-19 12:28:16 +0000 | [diff] [blame] | 27 | e = Entry{} |
| 28 | e.Add("id", "normal length") |
| 29 | e.Add("labels", "foo") |
| 30 | tab.Add(e) |
| Serge Bazanski | 504ea31 | 2023-03-22 17:47:48 +0100 | [diff] [blame] | 31 | |
| 32 | buf := bytes.NewBuffer(nil) |
| Serge Bazanski | e0c0617 | 2023-09-19 12:28:16 +0000 | [diff] [blame] | 33 | tab.Print(buf, nil) |
| Serge Bazanski | 504ea31 | 2023-03-22 17:47:48 +0100 | [diff] [blame] | 34 | |
| 35 | golden := ` |
| 36 | ID LABELS WHOOPS |
| 37 | short |
| 38 | this one is a very long one bar only in second |
| 39 | normal length foo |
| 40 | ` |
| 41 | golden = strings.TrimSpace(golden) |
| 42 | got := strings.TrimSpace(buf.String()) |
| 43 | if got != golden { |
| Lorenz Brun | 0ec0c53 | 2024-08-29 12:39:47 +0000 | [diff] [blame] | 44 | t.Logf("wanted: \n%s", golden) |
| 45 | t.Logf("got: \n%s", got) |
| Serge Bazanski | 504ea31 | 2023-03-22 17:47:48 +0100 | [diff] [blame] | 46 | t.Errorf("mismatch") |
| 47 | } |
| 48 | } |