github.com/best4tires/kit@v1.0.5/env/flags_test.go (about)

     1  package env
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  func TestFlags(t *testing.T) {
     9  	tests := map[string]struct {
    10  		args     []string
    11  		expFlags map[string]any
    12  	}{
    13  		"test_01": {
    14  			args: []string{
    15  				"-foo=bar",
    16  			},
    17  			expFlags: map[string]any{
    18  				"foo": "bar",
    19  			},
    20  		},
    21  		"test_02": {
    22  			args: []string{
    23  				"--foo=bar",
    24  			},
    25  			expFlags: map[string]any{
    26  				"foo": "bar",
    27  			},
    28  		},
    29  		"test_03": {
    30  			args: []string{
    31  				"-foo", "bar",
    32  			},
    33  			expFlags: map[string]any{
    34  				"foo": "bar",
    35  			},
    36  		},
    37  		"test_04": {
    38  			args: []string{
    39  				"--foo", "bar",
    40  			},
    41  			expFlags: map[string]any{
    42  				"foo": "bar",
    43  			},
    44  		},
    45  		"test_05": {
    46  			args: []string{
    47  				"-bbar",
    48  			},
    49  			expFlags: map[string]any{
    50  				"bbar": true,
    51  			},
    52  		},
    53  		"test_06": {
    54  			args: []string{
    55  				"--bbar",
    56  			},
    57  			expFlags: map[string]any{
    58  				"bbar": true,
    59  			},
    60  		},
    61  		"test_07": {
    62  			args: []string{
    63  				"--bbar", "-foo=baz", "--wop", "22",
    64  			},
    65  			expFlags: map[string]any{
    66  				"bbar": true,
    67  				"foo":  "baz",
    68  				"wop":  "22",
    69  			},
    70  		},
    71  		"test_08": {
    72  			args: []string{
    73  				"--wop", "22", "-foo=baz", "--bbar",
    74  			},
    75  			expFlags: map[string]any{
    76  				"bbar": true,
    77  				"foo":  "baz",
    78  				"wop":  "22",
    79  			},
    80  		},
    81  		"test_09": {
    82  			args: []string{
    83  				"--wop", "22", "-foo=baz", "vamos", "--bbar",
    84  			},
    85  			expFlags: map[string]any{
    86  				"bbar": true,
    87  				"foo":  "baz",
    88  				"wop":  "22",
    89  			},
    90  		},
    91  	}
    92  
    93  	for name, test := range tests {
    94  		t.Run(name, func(t *testing.T) {
    95  			res := ParseFlags(test.args)
    96  			if !reflect.DeepEqual(test.expFlags, res) {
    97  				t.Fatalf("want %v, have %v", test.expFlags, res)
    98  			}
    99  		})
   100  	}
   101  }