@@ -33,3 +33,71 @@ func TestGetVMDomain(t *testing.T) {
3333 })
3434 }
3535}
36+
37+ func TestGetOrgName (t * testing.T ) {
38+ // Save and restore HOME / VERS_ORG so this test is hermetic.
39+ origHome := os .Getenv ("HOME" )
40+ origOrg := os .Getenv ("VERS_ORG" )
41+ t .Cleanup (func () {
42+ os .Setenv ("HOME" , origHome )
43+ if origOrg == "" {
44+ os .Unsetenv ("VERS_ORG" )
45+ } else {
46+ os .Setenv ("VERS_ORG" , origOrg )
47+ }
48+ })
49+
50+ tmp := t .TempDir ()
51+ os .Setenv ("HOME" , tmp )
52+ os .Unsetenv ("VERS_ORG" )
53+
54+ // 1. No config file, no env var → empty.
55+ got , err := GetOrgName ()
56+ if err != nil {
57+ t .Fatalf ("GetOrgName with no config: %v" , err )
58+ }
59+ if got != "" {
60+ t .Errorf ("expected empty, got %q" , got )
61+ }
62+
63+ // 2. Persist via SaveAuth, read back.
64+ if err := SaveAuth ("test-key" , "acme" , "org-uuid-1" ); err != nil {
65+ t .Fatalf ("SaveAuth: %v" , err )
66+ }
67+ got , err = GetOrgName ()
68+ if err != nil {
69+ t .Fatalf ("GetOrgName after SaveAuth: %v" , err )
70+ }
71+ if got != "acme" {
72+ t .Errorf ("expected acme, got %q" , got )
73+ }
74+
75+ // 3. Env var wins over persisted value.
76+ os .Setenv ("VERS_ORG" , "override-org" )
77+ got , err = GetOrgName ()
78+ if err != nil {
79+ t .Fatalf ("GetOrgName with env override: %v" , err )
80+ }
81+ if got != "override-org" {
82+ t .Errorf ("expected override-org, got %q" , got )
83+ }
84+
85+ // 4. Empty SaveAuth values don't clobber persisted ones.
86+ os .Unsetenv ("VERS_ORG" )
87+ if err := SaveAuth ("new-key" , "" , "" ); err != nil {
88+ t .Fatalf ("SaveAuth empty org: %v" , err )
89+ }
90+ cfg , err := LoadConfig ()
91+ if err != nil {
92+ t .Fatalf ("LoadConfig: %v" , err )
93+ }
94+ if cfg .APIKey != "new-key" {
95+ t .Errorf ("expected new-key, got %q" , cfg .APIKey )
96+ }
97+ if cfg .OrgName != "acme" {
98+ t .Errorf ("expected acme preserved, got %q" , cfg .OrgName )
99+ }
100+ if cfg .OrgID != "org-uuid-1" {
101+ t .Errorf ("expected org-uuid-1 preserved, got %q" , cfg .OrgID )
102+ }
103+ }
0 commit comments