github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/actor/pushaction/domain_test.go (about) 1 package pushaction_test 2 3 import ( 4 "errors" 5 6 . "github.com/liamawhite/cli-with-i18n/actor/pushaction" 7 "github.com/liamawhite/cli-with-i18n/actor/pushaction/pushactionfakes" 8 "github.com/liamawhite/cli-with-i18n/actor/v2action" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("Domains", func() { 15 var ( 16 actor *Actor 17 fakeV2Actor *pushactionfakes.FakeV2Actor 18 ) 19 20 BeforeEach(func() { 21 fakeV2Actor = new(pushactionfakes.FakeV2Actor) 22 actor = NewActor(fakeV2Actor, nil) 23 }) 24 25 Describe("DefaultDomain", func() { 26 var ( 27 orgGUID string 28 defaultDomain v2action.Domain 29 warnings Warnings 30 executeErr error 31 ) 32 33 BeforeEach(func() { 34 orgGUID = "some-org-guid" 35 }) 36 37 JustBeforeEach(func() { 38 defaultDomain, warnings, executeErr = actor.DefaultDomain(orgGUID) 39 }) 40 41 Context("when retrieving the domains is successful", func() { 42 BeforeEach(func() { 43 fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{ 44 { 45 Name: "private-domain.com", 46 GUID: "some-private-domain-guid", 47 }, 48 { 49 Name: "private-domain-2.com", 50 GUID: "some-private-domain-guid-2", 51 }, 52 { 53 Name: "shared-domain.com", 54 GUID: "some-shared-domain-guid", 55 }, 56 }, 57 v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, 58 nil, 59 ) 60 }) 61 62 It("returns the first domain and warnings", func() { 63 Expect(executeErr).ToNot(HaveOccurred()) 64 Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings")) 65 Expect(defaultDomain).To(Equal(v2action.Domain{ 66 Name: "private-domain.com", 67 GUID: "some-private-domain-guid", 68 })) 69 70 Expect(fakeV2Actor.GetOrganizationDomainsCallCount()).To(Equal(1)) 71 Expect(fakeV2Actor.GetOrganizationDomainsArgsForCall(0)).To(Equal(orgGUID)) 72 }) 73 }) 74 75 Context("no domains exist", func() { 76 BeforeEach(func() { 77 fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{}, v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, nil) 78 }) 79 80 It("returns the first shared domain and warnings", func() { 81 Expect(executeErr).To(MatchError(NoDomainsFoundError{OrganizationGUID: orgGUID})) 82 Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings")) 83 }) 84 }) 85 86 Context("when retrieving the domains errors", func() { 87 var expectedErr error 88 89 BeforeEach(func() { 90 expectedErr = errors.New("whoops") 91 fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{}, v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, expectedErr) 92 }) 93 94 It("returns errors and warnings", func() { 95 Expect(executeErr).To(MatchError(expectedErr)) 96 Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings")) 97 }) 98 }) 99 }) 100 })