summaryrefslogtreecommitdiffstats
path: root/utils/runes_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/runes_test.go')
-rw-r--r--utils/runes_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/utils/runes_test.go b/utils/runes_test.go
new file mode 100644
index 0000000..67ceefc
--- /dev/null
+++ b/utils/runes_test.go
@@ -0,0 +1,50 @@
+package utils
+
+import "testing"
+
+const (
+ ELLIPSIS = "…"
+)
+
+func TestTruncateFront(t *testing.T) {
+ tests := []struct {
+ s string
+ w int
+ prefix string
+ want string
+ }{
+ {"", 0, ELLIPSIS, ""},
+ {"", 1, ELLIPSIS, ""},
+ {"", 10, ELLIPSIS, ""},
+
+ {"abcdef", 0, ELLIPSIS, ELLIPSIS},
+ {"abcdef", 1, ELLIPSIS, ELLIPSIS},
+ {"abcdef", 2, ELLIPSIS, ELLIPSIS + "f"},
+ {"abcdef", 5, ELLIPSIS, ELLIPSIS + "cdef"},
+ {"abcdef", 6, ELLIPSIS, "abcdef"},
+ {"abcdef", 10, ELLIPSIS, "abcdef"},
+
+ {"abcdef", 0, "...", "..."},
+ {"abcdef", 1, "...", "..."},
+ {"abcdef", 3, "...", "..."},
+ {"abcdef", 4, "...", "...f"},
+ {"abcdef", 5, "...", "...ef"},
+ {"abcdef", 6, "...", "abcdef"},
+ {"abcdef", 10, "...", "abcdef"},
+
+ {"⦅full~width⦆", 15, ".", "⦅full~width⦆"},
+ {"⦅full~width⦆", 14, ".", ".full~width⦆"},
+ {"⦅full~width⦆", 13, ".", ".ull~width⦆"},
+ {"⦅full~width⦆", 10, ".", ".~width⦆"},
+ {"⦅full~width⦆", 9, ".", ".width⦆"},
+ {"⦅full~width⦆", 8, ".", ".width⦆"},
+ {"⦅full~width⦆", 3, ".", ".⦆"},
+ {"⦅full~width⦆", 2, ".", "."},
+ }
+
+ for _, test := range tests {
+ if got := TruncateFront(test.s, test.w, test.prefix); got != test.want {
+ t.Errorf("TruncateFront(%q, %d, %q) = %q; want %q", test.s, test.w, test.prefix, got, test.want)
+ }
+ }
+}