github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/singletons/config/projects_test.go (about)

     1  package config_test
     2  
     3  import (
     4  	"fmt"
     5  	"path"
     6  	"testing"
     7  
     8  	"github.com/taubyte/tau-cli/singletons/config"
     9  )
    10  
    11  func TestProjects(t *testing.T) {
    12  	cwd, deferment, err := initializeTest()
    13  	if err != nil {
    14  		t.Error(err)
    15  		return
    16  	}
    17  	defer deferment()
    18  
    19  	testProjectName := "test_project"
    20  	testProject := config.Project{
    21  		DefaultProfile: "someProfile",
    22  		Location:       path.Join(cwd, "test_project"),
    23  	}
    24  
    25  	projects := config.Projects()
    26  
    27  	err = projects.Set(testProjectName, testProject)
    28  	if err != nil {
    29  		t.Error(err)
    30  		return
    31  	}
    32  
    33  	project, err := projects.Get(testProjectName)
    34  	if err != nil {
    35  		t.Error(err)
    36  		return
    37  	}
    38  
    39  	if project != testProject {
    40  		t.Errorf("Expected %v, got %v", testProject, project)
    41  		return
    42  	}
    43  
    44  	expectedData := `projects:
    45      test_project:
    46          default_profile: someProfile
    47          location: %s/test_project
    48  `
    49  
    50  	configData, err := readConfig()
    51  	if err != nil {
    52  		t.Error(err)
    53  		return
    54  	}
    55  
    56  	expectedData = fmt.Sprintf(expectedData, cwd)
    57  
    58  	if configData != expectedData {
    59  		t.Errorf("Expected %s, got %s", expectedData, configData)
    60  		return
    61  	}
    62  }