forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1package engine 2 3import ( 4 "reflect" 5 "testing" 6 7 "tangled.sh/tangled.sh/core/api/tangled" 8) 9 10func TestConstructEnvs(t *testing.T) { 11 tests := []struct { 12 name string 13 in []*tangled.Pipeline_Step_Environment_Elem 14 want EnvVars 15 }{ 16 { 17 name: "empty input", 18 in: []*tangled.Pipeline_Step_Environment_Elem{}, 19 want: EnvVars{}, 20 }, 21 { 22 name: "single env var", 23 in: []*tangled.Pipeline_Step_Environment_Elem{ 24 {Key: "FOO", Value: "bar"}, 25 }, 26 want: EnvVars{"FOO=bar"}, 27 }, 28 { 29 name: "multiple env vars", 30 in: []*tangled.Pipeline_Step_Environment_Elem{ 31 {Key: "FOO", Value: "bar"}, 32 {Key: "BAZ", Value: "qux"}, 33 }, 34 want: EnvVars{"FOO=bar", "BAZ=qux"}, 35 }, 36 { 37 name: "nil entries are skipped", 38 in: []*tangled.Pipeline_Step_Environment_Elem{ 39 nil, 40 {Key: "FOO", Value: "bar"}, 41 }, 42 want: EnvVars{"FOO=bar"}, 43 }, 44 } 45 46 for _, tt := range tests { 47 t.Run(tt.name, func(t *testing.T) { 48 got := ConstructEnvs(tt.in) 49 50 if got == nil { 51 got = EnvVars{} 52 } 53 54 if !reflect.DeepEqual(got, tt.want) { 55 t.Errorf("ConstructEnvs() = %v, want %v", got, tt.want) 56 } 57 }) 58 } 59} 60 61func TestAddEnv(t *testing.T) { 62 ev := EnvVars{} 63 ev.AddEnv("FOO", "bar") 64 ev.AddEnv("BAZ", "qux") 65 66 want := EnvVars{"FOO=bar", "BAZ=qux"} 67 if !reflect.DeepEqual(ev, want) { 68 t.Errorf("AddEnv result = %v, want %v", ev, want) 69 } 70}