github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/util/configv3/dynamic_user_config_test.go (about)

     1  package configv3_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	"code.cloudfoundry.org/cli/util/configv3"
     7  	"code.cloudfoundry.org/cli/util/configv3/configv3fakes"
     8  	. "github.com/onsi/ginkgo"
     9  	. "github.com/onsi/gomega"
    10  )
    11  
    12  var _ = Describe("DynamicUserConfig", func() {
    13  	var (
    14  		fakeDefaultUserConfig    *configv3fakes.FakeUserConfig
    15  		fakeKubernetesUserConfig *configv3fakes.FakeUserConfig
    16  		jsonConfig               *configv3.JSONConfig
    17  		dynamicUserConfig        configv3.DynamicUserConfig
    18  		err                      error
    19  	)
    20  
    21  	BeforeEach(func() {
    22  		fakeDefaultUserConfig = new(configv3fakes.FakeUserConfig)
    23  		fakeDefaultUserConfig.CurrentUserReturns(configv3.User{Name: "default-user"}, nil)
    24  		fakeDefaultUserConfig.CurrentUserNameReturns("default-user", nil)
    25  
    26  		fakeKubernetesUserConfig = new(configv3fakes.FakeUserConfig)
    27  		fakeKubernetesUserConfig.CurrentUserReturns(configv3.User{Name: "kubernetes-user"}, nil)
    28  		fakeKubernetesUserConfig.CurrentUserNameReturns("kubernetes-user", nil)
    29  
    30  		jsonConfig = &configv3.JSONConfig{}
    31  		dynamicUserConfig = configv3.DynamicUserConfig{
    32  			ConfigFile:           jsonConfig,
    33  			DefaultUserConfig:    fakeDefaultUserConfig,
    34  			KubernetesUserConfig: fakeKubernetesUserConfig,
    35  		}
    36  	})
    37  
    38  	Describe("CurrentUser", func() {
    39  		var currentUser configv3.User
    40  
    41  		JustBeforeEach(func() {
    42  			currentUser, err = dynamicUserConfig.CurrentUser()
    43  		})
    44  
    45  		When("using a default config", func() {
    46  			BeforeEach(func() {
    47  				jsonConfig.CFOnK8s.Enabled = false
    48  			})
    49  
    50  			It("delegates to the default UserConfig", func() {
    51  				Expect(err).NotTo(HaveOccurred())
    52  				Expect(currentUser.Name).To(Equal("default-user"))
    53  			})
    54  
    55  			When("the default UserConfig fails", func() {
    56  				BeforeEach(func() {
    57  					fakeDefaultUserConfig.CurrentUserReturns(configv3.User{}, errors.New("current-user-err"))
    58  				})
    59  
    60  				It("returns the error", func() {
    61  					Expect(err).To(MatchError("current-user-err"))
    62  				})
    63  			})
    64  		})
    65  
    66  		When("using a Kubernetes config", func() {
    67  			BeforeEach(func() {
    68  				jsonConfig.CFOnK8s.Enabled = true
    69  			})
    70  
    71  			It("delegates to the Kubernetes UserConfig", func() {
    72  				Expect(err).NotTo(HaveOccurred())
    73  				Expect(currentUser.Name).To(Equal("kubernetes-user"))
    74  			})
    75  
    76  			When("the Kubernetes UserConfig fails", func() {
    77  				BeforeEach(func() {
    78  					fakeKubernetesUserConfig.CurrentUserReturns(configv3.User{}, errors.New("current-user-err"))
    79  				})
    80  
    81  				It("returns the error", func() {
    82  					Expect(err).To(MatchError("current-user-err"))
    83  				})
    84  			})
    85  		})
    86  	})
    87  
    88  	Describe("CurrentUserName", func() {
    89  		var currentUserName string
    90  
    91  		JustBeforeEach(func() {
    92  			currentUserName, err = dynamicUserConfig.CurrentUserName()
    93  		})
    94  
    95  		When("using a default config", func() {
    96  			BeforeEach(func() {
    97  				jsonConfig.CFOnK8s.Enabled = false
    98  			})
    99  
   100  			It("delegates to the default UserConfig", func() {
   101  				Expect(err).NotTo(HaveOccurred())
   102  				Expect(currentUserName).To(Equal("default-user"))
   103  			})
   104  
   105  			When("the default UserConfig fails", func() {
   106  				BeforeEach(func() {
   107  					fakeDefaultUserConfig.CurrentUserNameReturns("", errors.New("current-username-err"))
   108  				})
   109  
   110  				It("returns the error", func() {
   111  					Expect(err).To(MatchError("current-username-err"))
   112  				})
   113  			})
   114  		})
   115  
   116  		When("using a Kubernetes config", func() {
   117  			BeforeEach(func() {
   118  				jsonConfig.CFOnK8s.Enabled = true
   119  			})
   120  
   121  			It("delegates to the Kubernetes UserConfig", func() {
   122  				Expect(err).NotTo(HaveOccurred())
   123  				Expect(currentUserName).To(Equal("kubernetes-user"))
   124  			})
   125  
   126  			When("the Kubernetes UserConfig fails", func() {
   127  				BeforeEach(func() {
   128  					fakeKubernetesUserConfig.CurrentUserNameReturns("", errors.New("current-username-err"))
   129  				})
   130  
   131  				It("returns the error", func() {
   132  					Expect(err).To(MatchError("current-username-err"))
   133  				})
   134  			})
   135  		})
   136  	})
   137  })