github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7pushaction/update_routes_for_application_test.go (about) 1 package v7pushaction_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/actionerror" 7 "code.cloudfoundry.org/cli/actor/v2action" 8 "code.cloudfoundry.org/cli/actor/v7action" 9 . "code.cloudfoundry.org/cli/actor/v7pushaction" 10 "code.cloudfoundry.org/cli/actor/v7pushaction/v7pushactionfakes" 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 ) 14 15 var _ = Describe("UpdateWebProcessForApplication", func() { 16 var ( 17 actor *Actor 18 fakeV2Actor *v7pushactionfakes.FakeV2Actor 19 fakeV7Actor *v7pushactionfakes.FakeV7Actor 20 21 paramPlan PushPlan 22 23 warnings Warnings 24 executeErr error 25 26 events []Event 27 ) 28 29 BeforeEach(func() { 30 actor, fakeV2Actor, fakeV7Actor, _ = getTestPushActor() 31 32 paramPlan = PushPlan{ 33 Application: v7action.Application{ 34 GUID: "some-app-guid", 35 }, 36 } 37 38 fakeV7Actor.GetDefaultDomainReturns( 39 v7action.Domain{ 40 GUID: "some-domain-guid", 41 Name: "some-domain", 42 }, 43 v7action.Warnings{"domain-warning"}, 44 nil, 45 ) 46 }) 47 48 JustBeforeEach(func() { 49 events = EventFollower(func(eventStream chan<- Event) { 50 _, warnings, executeErr = actor.UpdateRoutesForApplication(paramPlan, eventStream, nil) 51 }) 52 }) 53 54 When("creating a default route", func() { 55 BeforeEach(func() { 56 paramPlan.SkipRouteCreation = false 57 }) 58 59 When("route creation and mapping is successful", func() { 60 BeforeEach(func() { 61 fakeV2Actor.FindRouteBoundToSpaceWithSettingsReturns( 62 v2action.Route{}, 63 v2action.Warnings{"route-warning"}, 64 actionerror.RouteNotFoundError{}, 65 ) 66 67 fakeV2Actor.CreateRouteReturns( 68 v2action.Route{ 69 GUID: "some-route-guid", 70 Host: "some-app", 71 Domain: v2action.Domain{ 72 Name: "some-domain", 73 GUID: "some-domain-guid", 74 }, 75 SpaceGUID: "some-space-guid", 76 }, 77 v2action.Warnings{"route-create-warning"}, 78 nil, 79 ) 80 81 fakeV2Actor.MapRouteToApplicationReturns( 82 v2action.Warnings{"map-warning"}, 83 nil, 84 ) 85 }) 86 87 It("creates the route, maps it to the app, and returns any warnings", func() { 88 Expect(executeErr).ToNot(HaveOccurred()) 89 Expect(warnings).To(ConsistOf("domain-warning", "route-warning", "route-create-warning", "map-warning")) 90 Expect(events).To(ConsistOf(CreatingAndMappingRoutes, CreatedRoutes)) 91 }) 92 }) 93 94 When("route creation and mapping errors", func() { 95 var expectedErr error 96 97 BeforeEach(func() { 98 expectedErr = errors.New("some route error") 99 fakeV7Actor.GetDefaultDomainReturns( 100 v7action.Domain{ 101 GUID: "some-domain-guid", 102 Name: "some-domain", 103 }, 104 v7action.Warnings{"domain-warning"}, 105 expectedErr, 106 ) 107 }) 108 109 It("returns errors and warnings", func() { 110 Expect(executeErr).To(MatchError(expectedErr)) 111 Expect(warnings).To(ConsistOf("domain-warning")) 112 Expect(events).To(ConsistOf(CreatingAndMappingRoutes)) 113 }) 114 }) 115 }) 116 })