github.com/spi-ca/misc@v1.0.1/strutil/mask_test.go (about)

     1  package strutil
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestMaskText(t *testing.T) {
     8  	type args struct {
     9  		input string
    10  	}
    11  	tests := []struct {
    12  		name    string
    13  		args    args
    14  		wantVal string
    15  	}{
    16  		{
    17  			"address",
    18  			args{"test@example.com"},
    19  			"t*st@example.com",
    20  		},
    21  		{
    22  			"address_long",
    23  			args{"testtesttesttest@example.com"},
    24  			"t*************st@example.com",
    25  		},
    26  		{
    27  			"address_short",
    28  			args{"tst@example.com"},
    29  			"*st@example.com",
    30  		},
    31  		{
    32  			"address_short_2",
    33  			args{"tt@example.com"},
    34  			"*t@example.com",
    35  		},
    36  		{
    37  			"address_very_short",
    38  			args{"t@example.com"},
    39  			"*@example.com",
    40  		},
    41  		{
    42  			"non-formal",
    43  			args{"texample.com"},
    44  			"t**********m",
    45  		},
    46  		{
    47  			"non-formal2",
    48  			args{"te🧭ample.co🧭"},
    49  			"t**********🧭",
    50  		},
    51  		{
    52  			"non-formal short",
    53  			args{"com"},
    54  			"c*m",
    55  		},
    56  		{
    57  			"non-formal short 2",
    58  			args{"⏰om"},
    59  			"⏰*m",
    60  		},
    61  	}
    62  	for _, tt := range tests {
    63  		t.Run(tt.name, func(t *testing.T) {
    64  			if gotVal := MaskText(tt.args.input); gotVal != tt.wantVal {
    65  				t.Errorf("MaskText() = %v, want %v", gotVal, tt.wantVal)
    66  			} else {
    67  				t.Log("==> ", gotVal)
    68  			}
    69  		})
    70  	}
    71  }