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 })