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