github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/actor/v2action/feature_flag_test.go (about) 1 package v2action_test 2 3 import ( 4 "errors" 5 6 . "code.cloudfoundry.org/cli/actor/v2action" 7 "code.cloudfoundry.org/cli/actor/v2action/v2actionfakes" 8 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv2" 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("Feature Flag Actions", func() { 14 var ( 15 actor *Actor 16 fakeCloudControllerClient *v2actionfakes.FakeCloudControllerClient 17 ) 18 19 BeforeEach(func() { 20 fakeCloudControllerClient = new(v2actionfakes.FakeCloudControllerClient) 21 actor = NewActor(fakeCloudControllerClient, nil, nil) 22 }) 23 24 Describe("GetFeatureFlags", func() { 25 var ( 26 featureFlags []FeatureFlag 27 warnings Warnings 28 err error 29 ) 30 31 JustBeforeEach(func() { 32 featureFlags, warnings, err = actor.GetFeatureFlags() 33 }) 34 35 When("an error is encountered getting feature flags", func() { 36 var expectedErr error 37 38 BeforeEach(func() { 39 expectedErr = errors.New("get feature flags error") 40 fakeCloudControllerClient.GetConfigFeatureFlagsReturns( 41 []ccv2.FeatureFlag{}, 42 ccv2.Warnings{"get-flags-warning"}, 43 expectedErr) 44 }) 45 46 It("returns the error and all warnings", func() { 47 Expect(err).To(MatchError(expectedErr)) 48 Expect(warnings).To(ConsistOf("get-flags-warning")) 49 50 Expect(fakeCloudControllerClient.GetConfigFeatureFlagsCallCount()).To(Equal(1)) 51 }) 52 }) 53 54 When("no errors are encountered getting feature flags", func() { 55 var featureFlag1 ccv2.FeatureFlag 56 var featureFlag2 ccv2.FeatureFlag 57 58 BeforeEach(func() { 59 featureFlag1 = ccv2.FeatureFlag{Name: "feature-flag-1", Enabled: true} 60 featureFlag2 = ccv2.FeatureFlag{Name: "feature-flag-2", Enabled: false} 61 fakeCloudControllerClient.GetConfigFeatureFlagsReturns( 62 []ccv2.FeatureFlag{featureFlag1, featureFlag2}, 63 ccv2.Warnings{"get-flags-warning"}, 64 nil) 65 }) 66 67 It("returns the feature flags and all warnings", func() { 68 Expect(err).ToNot(HaveOccurred()) 69 Expect(warnings).To(ConsistOf("get-flags-warning")) 70 Expect(featureFlags).To(Equal([]FeatureFlag{ 71 FeatureFlag(featureFlag1), 72 FeatureFlag(featureFlag2), 73 })) 74 75 Expect(fakeCloudControllerClient.GetConfigFeatureFlagsCallCount()).To(Equal(1)) 76 }) 77 }) 78 }) 79 })