github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/actor/sharedaction/check_target_test.go (about)

     1  package sharedaction_test
     2  
     3  import (
     4  	. "github.com/liamawhite/cli-with-i18n/actor/sharedaction"
     5  	"github.com/liamawhite/cli-with-i18n/actor/sharedaction/sharedactionfakes"
     6  	. "github.com/onsi/ginkgo"
     7  	. "github.com/onsi/ginkgo/extensions/table"
     8  	. "github.com/onsi/gomega"
     9  )
    10  
    11  var _ = Describe("CheckTarget", func() {
    12  	var (
    13  		actor      *Actor
    14  		binaryName string
    15  		fakeConfig *sharedactionfakes.FakeConfig
    16  	)
    17  
    18  	BeforeEach(func() {
    19  		binaryName = "faceman"
    20  		fakeConfig = new(sharedactionfakes.FakeConfig)
    21  		fakeConfig.BinaryNameReturns(binaryName)
    22  		actor = NewActor(fakeConfig)
    23  	})
    24  
    25  	Context("when the user is not logged in", func() {
    26  		It("returns an error", func() {
    27  			err := actor.CheckTarget(fakeConfig, false, false)
    28  			Expect(err).To(MatchError(NotLoggedInError{
    29  				BinaryName: binaryName,
    30  			}))
    31  		})
    32  	})
    33  
    34  	Context("when the user is logged in", func() {
    35  		BeforeEach(func() {
    36  			fakeConfig.AccessTokenReturns("some-access-token")
    37  			fakeConfig.RefreshTokenReturns("some-refresh-token")
    38  		})
    39  
    40  		DescribeTable("targeting org check",
    41  			func(isOrgTargeted bool, checkForTargeted bool, expectedError error) {
    42  				fakeConfig.HasTargetedOrganizationReturns(isOrgTargeted)
    43  
    44  				err := actor.CheckTarget(fakeConfig, checkForTargeted, false)
    45  
    46  				if expectedError != nil {
    47  					Expect(err).To(MatchError(expectedError))
    48  				} else {
    49  					Expect(err).ToNot(HaveOccurred())
    50  				}
    51  			},
    52  
    53  			Entry("it returns an error", false, true, NoOrganizationTargetedError{BinaryName: "faceman"}),
    54  			Entry("it does not return an error", false, false, nil),
    55  			Entry("it does not return an error", true, false, nil),
    56  			Entry("it does not return an error", true, true, nil),
    57  		)
    58  
    59  		Context("when the organization is targeted", func() {
    60  			BeforeEach(func() {
    61  				fakeConfig.HasTargetedOrganizationReturns(true)
    62  			})
    63  
    64  			DescribeTable("targeting space check",
    65  				func(isSpaceTargeted bool, checkForTargeted bool, expectedError error) {
    66  					fakeConfig.HasTargetedSpaceReturns(isSpaceTargeted)
    67  
    68  					err := actor.CheckTarget(fakeConfig, true, checkForTargeted)
    69  
    70  					if expectedError != nil {
    71  						Expect(err).To(MatchError(expectedError))
    72  					} else {
    73  						Expect(err).ToNot(HaveOccurred())
    74  					}
    75  				},
    76  
    77  				Entry("it returns an error", false, true, NoSpaceTargetedError{BinaryName: "faceman"}),
    78  				Entry("it does not return an error", false, false, nil),
    79  				Entry("it does not return an error", true, false, nil),
    80  				Entry("it does not return an error", true, true, nil),
    81  			)
    82  		})
    83  	})
    84  })