mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Adds a new top-level configuration key called "language": ```yaml wtf: langauge: "ja-JP" ``` Users can now define which BCP 47 language tag to use to format any text or numbers that currently support localization. Defaults to "en-CA". Acceptible values: any BCP 47 language tag recognized by the Go "language" package. Good luck to you figuring out what that cannonical list is. After a morning of trying to suss it out, I have no idea. Signed-off-by: Chris Cummer <chriscummer@me.com>
64 lines
2.1 KiB
Go
64 lines
2.1 KiB
Go
package utils
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/rivo/tview"
|
|
"github.com/stretchr/testify/assert"
|
|
"golang.org/x/text/language"
|
|
"golang.org/x/text/message"
|
|
)
|
|
|
|
func Test_CenterText(t *testing.T) {
|
|
assert.Equal(t, "cat", CenterText("cat", -9))
|
|
assert.Equal(t, "cat", CenterText("cat", 0))
|
|
assert.Equal(t, " cat ", CenterText("cat", 9))
|
|
}
|
|
|
|
func Test_HighlightableHelper(t *testing.T) {
|
|
view := tview.NewTextView()
|
|
actual := HighlightableHelper(view, "cats", 0, 5)
|
|
|
|
assert.Equal(t, "[\"0\"][\"\"]cats [\"\"]\n", actual)
|
|
}
|
|
|
|
func Test_RowPadding(t *testing.T) {
|
|
assert.Equal(t, "", RowPadding(0, 0))
|
|
assert.Equal(t, "", RowPadding(5, 2))
|
|
assert.Equal(t, " ", RowPadding(1, 2))
|
|
assert.Equal(t, " ", RowPadding(0, 5))
|
|
}
|
|
|
|
func Test_Truncate(t *testing.T) {
|
|
assert.Equal(t, "", Truncate("cat", 0, false))
|
|
assert.Equal(t, "c", Truncate("cat", 1, false))
|
|
assert.Equal(t, "ca", Truncate("cat", 2, false))
|
|
assert.Equal(t, "cat", Truncate("cat", 3, false))
|
|
assert.Equal(t, "cat", Truncate("cat", 4, false))
|
|
|
|
assert.Equal(t, "", Truncate("cat", 0, true))
|
|
assert.Equal(t, "c", Truncate("cat", 1, true))
|
|
assert.Equal(t, "cā¦", Truncate("cat", 2, true))
|
|
assert.Equal(t, "cat", Truncate("cat", 3, true))
|
|
assert.Equal(t, "cat", Truncate("cat", 4, true))
|
|
|
|
// Only supports non-ellipsed emoji
|
|
assert.Equal(t, "š®š", Truncate("š®šš„š¾", 2, false))
|
|
}
|
|
|
|
func Test_PrettyNumber(t *testing.T) {
|
|
locPrinter := message.NewPrinter(language.English)
|
|
|
|
assert.Equal(t, "1,000,000", PrettyNumber(locPrinter, 1000000))
|
|
assert.Equal(t, "1,000,000.99", PrettyNumber(locPrinter, 1000000.99))
|
|
assert.Equal(t, "1,000,000", PrettyNumber(locPrinter, 1000000.00))
|
|
assert.Equal(t, "100,000", PrettyNumber(locPrinter, 100000))
|
|
assert.Equal(t, "100,000.01", PrettyNumber(locPrinter, 100000.009))
|
|
assert.Equal(t, "10,000", PrettyNumber(locPrinter, 10000))
|
|
assert.Equal(t, "1,000", PrettyNumber(locPrinter, 1000))
|
|
assert.Equal(t, "1,000", PrettyNumber(locPrinter, 1000))
|
|
assert.Equal(t, "100", PrettyNumber(locPrinter, 100))
|
|
assert.Equal(t, "0", PrettyNumber(locPrinter, 0))
|
|
assert.Equal(t, "0.10", PrettyNumber(locPrinter, 0.1))
|
|
}
|