mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-04 10:34:55 +02:00
199 lines
3.5 KiB
Go
199 lines
3.5 KiB
Go
|
package utils
|
||
|
|
||
|
import "testing"
|
||
|
|
||
|
func TestDecolorise(t *testing.T) {
|
||
|
var 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)
|
||
|
}
|
||
|
}
|
||
|
}
|