1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-12-04 10:34:55 +02:00
lazygit/pkg/utils/color_test.go
2022-03-19 12:12:57 +11:00

201 lines
3.5 KiB
Go

package utils
import (
"testing"
)
func TestDecolorise(t *testing.T) {
tests := []struct {
input string
output string
}{
{
input: "",
output: "",
},
{
input: "hello",
output: "hello",
},
{
input: "hello\x1b[31m",
output: "hello",
},
{
input: "hello\x1b[31mworld",
output: "helloworld",
},
{
input: "hello\x1b[31m\x1b[32mworld",
output: "helloworld",
},
{
input: "hello\x1b[31m\x1b[32m\x1b[33mworld",
output: "helloworld",
},
{
input: "hello\x1b[31m\x1b[32m\x1b[33m\x1b[34mworld",
output: "helloworld",
},
{
input: "hello\x1b[31m\x1b[32m\x1b[33m\x1b[34m\x1b[35mworld",
output: "helloworld",
},
{
input: "hello\x1b[31m\x1b[32m\x1b[33m\x1b[34m\x1b[35m\x1b[36mworld",
output: "helloworld",
},
{
input: "hello\x1b[31m\x1b[32m\x1b[33m\x1b[34m\x1b[35m\x1b[36m\x1b[37mworld",
output: "helloworld",
},
{
input: "hello\x1b[31m\x1b[32m\x1b[33m\x1b[34m\x1b[35m\x1b[36m\x1b[37mworld",
output: "helloworld",
},
{
input: "\x1b[38;2;47;228;2mJD\x1b[0m",
output: "JD",
},
{
input: "\x1b[38;2;160;47;213mRy\x1b[0m",
output: "Ry",
},
{
input: "\x1b[38;2;179;217;72mSB\x1b[0m",
output: "SB",
},
{
input: "\x1b[38;2;48;34;214mMK\x1b[0m",
output: "MK",
},
{
input: "\x1b[38;2;28;152;222mAŁ\x1b[0m",
output: "AŁ",
},
{
input: "\x1b[38;2;237;230;56mHH\x1b[0m",
output: "HH",
},
{
input: "\x1b[38;2;63;232;69mmj\x1b[0m",
output: "mj",
},
{
input: "\x1b[38;2;111;207;16mbl\x1b[0m",
output: "bl",
},
{
input: "\x1b[38;2;250;31;163msa\x1b[0m",
output: "sa",
},
{
input: "\x1b[38;2;195;10;54mbt\x1b[0m",
output: "bt",
},
{
input: "\x1b[38;2;232;147;68mco\x1b[0m",
output: "co",
},
{
input: "\x1b[38;2;116;180;35mDY\x1b[0m",
output: "DY",
},
{
input: "\x1b[38;2;232;1;195mDB\x1b[0m",
output: "DB",
},
{
input: "\x1b[38;2;245;101;55mLi\x1b[0m",
output: "Li",
},
{
input: "\x1b[38;2;47;4;217mRy\x1b[0m",
output: "Ry",
},
{
input: "\x1b[38;2;252;197;1mEl\x1b[0m",
output: "El",
},
{
input: "\x1b[38;2;41;131;237mMG\x1b[0m",
output: "MG",
},
{
input: "\x1b[38;2;65;240;62mDP\x1b[0m",
output: "DP",
},
{
input: "\x1b[38;2;29;201;139mFM\x1b[0m",
output: "FM",
},
{
input: "\x1b[38;2;141;20;198mEB\x1b[0m",
output: "EB",
},
{
input: "\x1b[38;2;60;215;140mDM\x1b[0m",
output: "DM",
},
{
input: "\x1b[38;2;247;63;38mDE\x1b[0m",
output: "DE",
},
{
input: "\x1b[38;2;67;210;17mCB\x1b[0m",
output: "CB",
},
{
input: "\x1b[38;2;220;190;84mST\x1b[0m",
output: "ST",
},
{
input: "\x1b[38;2;137;239;6mER\x1b[0m",
output: "ER",
},
{
input: "\x1b[38;2;47;249;225mAY\x1b[0m",
output: "AY",
},
{
input: "\x1b[38;2;215;16;195mca\x1b[0m",
output: "ca",
},
{
input: "\x1b[38;2;73;215;122mRV\x1b[0m",
output: "RV",
},
{
input: "\x1b[38;2;118;15;221mJP\x1b[0m",
output: "JP",
},
{
input: "\x1b[38;2;186;163;39mHJ\x1b[0m",
output: "HJ",
},
{
input: "\x1b[38;2;54;222;111mDD\x1b[0m",
output: "DD",
},
{
input: "\x1b[38;2;56;209;108mPZ\x1b[0m",
output: "PZ",
},
{
input: "\x1b[38;2;9;179;216mPM\x1b[0m",
output: "PM",
},
{
input: "\x1b[38;2;157;205;18mta\x1b[0m",
output: "ta",
},
}
for _, test := range tests {
output := Decolorise(test.input)
if output != test.output {
t.Errorf("Decolorise(%s) = %s, want %s", test.input, output, test.output)
}
}
}