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  }