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