github.com/cloudfoundry/cli@v7.1.0+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  })