- Ensure that text is never truncated mid-character, which would result in garbled text - Ensure that columns in `issue/pr list` output align properly
71 lines
1.2 KiB
Go
71 lines
1.2 KiB
Go
package text
|
|
|
|
import "testing"
|
|
|
|
func TestTruncate(t *testing.T) {
|
|
type args struct {
|
|
max int
|
|
s string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
}{
|
|
{
|
|
name: "Japanese",
|
|
args: args{
|
|
max: 11,
|
|
s: "テストテストテストテスト",
|
|
},
|
|
want: "テストテ...",
|
|
},
|
|
{
|
|
name: "Japanese filled",
|
|
args: args{
|
|
max: 11,
|
|
s: "aテストテストテストテスト",
|
|
},
|
|
want: "aテスト... ",
|
|
},
|
|
{
|
|
name: "Chinese",
|
|
args: args{
|
|
max: 11,
|
|
s: "幫新舉報違章工廠新增編號",
|
|
},
|
|
want: "幫新舉報...",
|
|
},
|
|
{
|
|
name: "Chinese filled",
|
|
args: args{
|
|
max: 11,
|
|
s: "a幫新舉報違章工廠新增編號",
|
|
},
|
|
want: "a幫新舉... ",
|
|
},
|
|
{
|
|
name: "Korean",
|
|
args: args{
|
|
max: 11,
|
|
s: "프로젝트 내의",
|
|
},
|
|
want: "프로젝트...",
|
|
},
|
|
{
|
|
name: "Korean filled",
|
|
args: args{
|
|
max: 11,
|
|
s: "a프로젝트 내의",
|
|
},
|
|
want: "a프로젝... ",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := Truncate(tt.args.max, tt.args.s); got != tt.want {
|
|
t.Errorf("Truncate() = %q, want %q", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|