github.com/loafoe/cli@v7.1.0+incompatible/integration/v6/push/path_only_routing_test.go (about) 1 package push 2 3 import ( 4 "fmt" 5 "strings" 6 7 "code.cloudfoundry.org/cli/integration/helpers" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 . "github.com/onsi/gomega/gbytes" 11 . "github.com/onsi/gomega/gexec" 12 ) 13 14 var _ = Describe("push with route path", func() { 15 var ( 16 appName string 17 route string 18 ) 19 20 BeforeEach(func() { 21 appName = helpers.NewAppName() 22 }) 23 24 When("the default domain is a HTTP domain", func() { 25 When("the route path is provided", func() { 26 var routePath string 27 28 BeforeEach(func() { 29 routePath = "some-path" 30 route = fmt.Sprintf("%s.%s/%s", strings.ToLower(appName), helpers.DefaultSharedDomain(), routePath) 31 }) 32 33 When("the default route with path does not exist", func() { 34 It("creates and maps the route", func() { 35 helpers.WithHelloWorldApp(func(dir string) { 36 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, appName, "--route-path", routePath, "--no-start") 37 Eventually(session).Should(Say("routes:")) 38 Eventually(session).Should(Say(`(?i)\+\s+%s`, route)) 39 Eventually(session).Should(Exit(0)) 40 }) 41 42 session := helpers.CF("app", appName) 43 Eventually(session).Should(Say(`name:\s+%s`, appName)) 44 Eventually(session).Should(Say(`routes:\s+%s`, route)) 45 Eventually(session).Should(Exit(0)) 46 }) 47 }) 48 49 Context("the default route with path exists and is unmapped", func() { 50 BeforeEach(func() { 51 Eventually(helpers.CF("create-route", space, helpers.DefaultSharedDomain(), "-n", strings.ToLower(appName), "--path", routePath)).Should(Exit(0)) 52 }) 53 54 It("maps the route with the provided path", func() { 55 helpers.WithHelloWorldApp(func(dir string) { 56 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, appName, "--route-path", routePath, "--no-start") 57 Eventually(session).Should(Say("routes:")) 58 Eventually(session).Should(Say(`(?i)\+\s+%s`, route)) 59 Eventually(session).Should(Exit(0)) 60 }) 61 62 session := helpers.CF("app", appName) 63 Eventually(session).Should(Say(`name:\s+%s`, appName)) 64 Eventually(session).Should(Say(`routes:\s+%s`, route)) 65 Eventually(session).Should(Exit(0)) 66 }) 67 }) 68 69 When("the default route with path exists and is mapped to the application", func() { 70 BeforeEach(func() { 71 helpers.WithHelloWorldApp(func(dir string) { 72 Eventually(helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, appName, "--route-path", routePath, "--no-start")).Should(Exit(0)) 73 }) 74 }) 75 76 It("does nothing", func() { 77 helpers.WithHelloWorldApp(func(dir string) { 78 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, appName, "--route-path", routePath, "--no-start") 79 Eventually(session).Should(Say("routes:")) 80 Eventually(session).Should(Say(`(?i)\s+%s`, route)) 81 Eventually(session).Should(Exit(0)) 82 }) 83 84 session := helpers.CF("app", appName) 85 Eventually(session).Should(Say(`name:\s+%s`, appName)) 86 Eventually(session).Should(Say(`routes:\s+%s`, route)) 87 Eventually(session).Should(Exit(0)) 88 }) 89 }) 90 }) 91 92 When("using a tcp domain", func() { 93 var ( 94 domain helpers.Domain 95 domainName string 96 ) 97 98 BeforeEach(func() { 99 domainName = helpers.NewDomainName() 100 domain = helpers.NewDomain(organization, domainName) 101 domain.CreateWithRouterGroup(helpers.FindOrCreateTCPRouterGroup(GinkgoParallelNode())) 102 }) 103 104 AfterEach(func() { 105 domain.DeleteShared() 106 }) 107 108 It("returns an error", func() { 109 session := helpers.CF(PushCommandName, appName, "--route-path", "/potatoes", "-d", domainName, "--no-start") 110 Eventually(session.Err).Should(Say("The route is invalid: a route path cannot be used with a TCP domain.")) 111 Eventually(session).Should(Exit(1)) 112 }) 113 }) 114 }) 115 })