github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state-exec/meta_test.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  	"reflect"
     6  	"testing"
     7  )
     8  
     9  func Test_transformedEnv(t *testing.T) {
    10  	I := string(os.PathListSeparator)
    11  	type args struct {
    12  		sourceEnv    []string
    13  		updatesToEnv []string
    14  	}
    15  	tests := []struct {
    16  		name string
    17  		args args
    18  		want []string
    19  	}{
    20  		{
    21  			"Simple append",
    22  			args{
    23  				sourceEnv:    []string{"A=1", "B=2"},
    24  				updatesToEnv: []string{"C=3"},
    25  			},
    26  			[]string{"A=1", "B=2", "C=3"},
    27  		},
    28  		{
    29  			"Path append",
    30  			args{
    31  				sourceEnv:    []string{"PATH=A" + I + "B"},
    32  				updatesToEnv: []string{"PATH=C"},
    33  			},
    34  			[]string{"PATH=C" + I + "A" + I + "B"},
    35  		},
    36  		{
    37  			"Path append with missmatched casing",
    38  			args{
    39  				sourceEnv:    []string{"Path=A" + I + "B"},
    40  				updatesToEnv: []string{"PATH=C"},
    41  			},
    42  			[]string{"PATH=C" + I + "A" + I + "B"},
    43  		},
    44  	}
    45  	for _, tt := range tests {
    46  		t.Run(tt.name, func(t *testing.T) {
    47  			if got := transformedEnv(tt.args.sourceEnv, tt.args.updatesToEnv); !reflect.DeepEqual(got, tt.want) {
    48  				t.Errorf("transformedEnv() = %v, want %v", got, tt.want)
    49  			}
    50  		})
    51  	}
    52  }