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 }