github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/platform/runtime/store/store_test.go (about) 1 package store 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 "path/filepath" 8 "strings" 9 "testing" 10 11 "github.com/ActiveState/cli/internal/constants" 12 "github.com/ActiveState/cli/internal/fileutils" 13 "github.com/ActiveState/cli/pkg/platform/runtime/envdef" 14 "github.com/go-openapi/strfmt" 15 "github.com/stretchr/testify/assert" 16 "github.com/stretchr/testify/require" 17 ) 18 19 func TestUpdateEnviron(t *testing.T) { 20 artifactIDs := []strfmt.UUID{"1", "2", "3", "4"} 21 artifacts := StoredArtifactMap{} 22 for i, artID := range artifactIDs[0:3] { 23 artifacts[artID] = StoredArtifact{EnvDef: &envdef.EnvironmentDefinition{Env: []envdef.EnvironmentVariable{ 24 { 25 Name: "vars", 26 Join: envdef.Append, 27 Separator: ":", 28 Values: []string{fmt.Sprintf("%d", i+1)}, 29 }, 30 }}} 31 } 32 s := New("/installPath") 33 rt, err := s.updateEnviron(artifactIDs, artifacts) 34 require.NoError(t, err) 35 env := rt.GetEnv(false) 36 assert.Equal(t, map[string]string{ 37 "vars": "1:2:3", 38 }, env) 39 } 40 41 func TestUpdateMarker(t *testing.T) { 42 dir := filepath.Join(os.TempDir(), t.Name()) 43 err := fileutils.Mkdir(dir) 44 require.NoError(t, err) 45 46 s := New(dir) 47 uuid := "00000000-0000-0000-0000-000000000000" 48 version := constants.Version 49 err = fileutils.WriteFile(s.markerFile(), []byte(strings.Join([]string{uuid, version}, "\n"))) 50 require.NoError(t, err) 51 52 marker, err := s.parseMarker() 53 require.NoError(t, err) 54 55 if marker.CommitID != uuid { 56 t.Errorf("Expected UUID to be %s, got %s", uuid, marker.CommitID) 57 } 58 if marker.Version != version { 59 t.Errorf("Expected version to be %s, got %s", version, marker.Version) 60 } 61 62 data, err := fileutils.ReadFile(s.markerFile()) 63 require.NoError(t, err) 64 if !json.Valid(data) { 65 t.Errorf("Expected marker file to be valid JSON") 66 } 67 }