github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/integration/v7/isolated/map_route_command_test.go (about) 1 package isolated 2 3 import ( 4 . "code.cloudfoundry.org/cli/cf/util/testhelpers/matchers" 5 "code.cloudfoundry.org/cli/integration/helpers" 6 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 . "github.com/onsi/gomega/gbytes" 10 . "github.com/onsi/gomega/gexec" 11 ) 12 13 var _ = Describe("map-route command", func() { 14 Context("help", func() { 15 It("appears in cf help -a", func() { 16 session := helpers.CF("help", "-a") 17 Eventually(session).Should(Exit(0)) 18 Expect(session).To(HaveCommandInCategoryWithDescription("map-route", "ROUTES", "Map a route to an app")) 19 }) 20 21 It("displays command usage to output", func() { 22 session := helpers.CF("map-route", "--help") 23 Eventually(session).Should(Say(`NAME:`)) 24 Eventually(session).Should(Say(`map-route - Map a route to an app\n`)) 25 Eventually(session).Should(Say(`\n`)) 26 27 Eventually(session).Should(Say(`USAGE:`)) 28 Eventually(session).Should(Say(`cf map-route APP_NAME DOMAIN \[--hostname HOSTNAME\] \[--path PATH\]\n`)) 29 Eventually(session).Should(Say(`\n`)) 30 31 Eventually(session).Should(Say(`EXAMPLES:`)) 32 Eventually(session).Should(Say(`cf map-route my-app example.com # example.com`)) 33 Eventually(session).Should(Say(`cf map-route my-app example.com --hostname myhost # myhost.example.com`)) 34 Eventually(session).Should(Say(`cf map-route my-app example.com --hostname myhost --path foo # myhost.example.com/foo`)) 35 Eventually(session).Should(Say(`\n`)) 36 37 Eventually(session).Should(Say(`OPTIONS:`)) 38 Eventually(session).Should(Say(`--hostname, -n\s+Hostname for the HTTP route \(required for shared domains\)`)) 39 Eventually(session).Should(Say(`--path\s+Path for the HTTP route`)) 40 Eventually(session).Should(Say(`\n`)) 41 42 Eventually(session).Should(Say(`SEE ALSO:`)) 43 Eventually(session).Should(Say(`create-route, routes, unmap-route`)) 44 45 Eventually(session).Should(Exit(0)) 46 }) 47 }) 48 49 When("the environment is not setup correctly", func() { 50 It("fails with the appropriate errors", func() { 51 helpers.CheckEnvironmentTargetedCorrectly(true, true, ReadOnlyOrg, "map-route", "app-name", "domain-name") 52 }) 53 }) 54 55 When("the environment is set up correctly", func() { 56 var ( 57 orgName string 58 spaceName string 59 domainName string 60 hostName string 61 path string 62 userName string 63 appName string 64 ) 65 66 BeforeEach(func() { 67 appName = helpers.NewAppName() 68 hostName = helpers.NewHostName() 69 path = helpers.NewPath() 70 orgName = helpers.NewOrgName() 71 spaceName = helpers.NewSpaceName() 72 helpers.SetupCF(orgName, spaceName) 73 userName, _ = helpers.GetCredentials() 74 domainName = helpers.DefaultSharedDomain() 75 76 helpers.WithHelloWorldApp(func(dir string) { 77 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, "push", appName) 78 Eventually(session).Should(Exit(0)) 79 }) 80 }) 81 82 When("the route already exists", func() { 83 var ( 84 route helpers.Route 85 ) 86 87 BeforeEach(func() { 88 route = helpers.NewRoute(spaceName, domainName, hostName, path) 89 route.V7Create() 90 }) 91 92 AfterEach(func() { 93 route.Delete() 94 }) 95 When("route is already mapped to app", func() { 96 BeforeEach(func() { 97 session := helpers.CF("map-route", appName, domainName, "--hostname", route.Host, "--path", route.Path) 98 Eventually(session).Should(Exit(0)) 99 }) 100 It("exits 0 with helpful message saying that the route is already mapped to the app", func() { 101 session := helpers.CF("map-route", appName, domainName, "--hostname", route.Host, "--path", route.Path) 102 103 Eventually(session).Should(Say(`Mapping route %s.%s%s to app %s in org %s / space %s as %s\.\.\.`, hostName, domainName, path, appName, orgName, spaceName, userName)) 104 Eventually(session).Should(Say(`App '%s' is already mapped to route '%s.%s%s'\.`, appName, hostName, domainName, path)) 105 Eventually(session).Should(Say(`OK`)) 106 Eventually(session).Should(Exit(0)) 107 108 }) 109 }) 110 When("route is not yet mapped to the app", func() { 111 It("maps the route to an app", func() { 112 session := helpers.CF("map-route", appName, domainName, "--hostname", route.Host, "--path", route.Path) 113 114 Eventually(session).Should(Say(`Mapping route %s.%s%s to app %s in org %s / space %s as %s\.\.\.`, hostName, domainName, path, appName, orgName, spaceName, userName)) 115 Eventually(session).Should(Say(`OK`)) 116 Eventually(session).Should(Exit(0)) 117 }) 118 }) 119 }) 120 121 When("the route does *not* exist", func() { 122 It("creates the route and maps it to an app", func() { 123 session := helpers.CF("map-route", appName, domainName, "--hostname", hostName, "--path", path) 124 Eventually(session).Should(Say(`Creating route %s.%s%s for org %s / space %s as %s\.\.\.`, hostName, domainName, path, orgName, spaceName, userName)) 125 Eventually(session).Should(Say(`OK`)) 126 Eventually(session).Should(Say(`Mapping route %s.%s%s to app %s in org %s / space %s as %s\.\.\.`, hostName, domainName, path, appName, orgName, spaceName, userName)) 127 Eventually(session).Should(Say(`OK`)) 128 Eventually(session).Should(Exit(0)) 129 }) 130 }) 131 }) 132 })