github.com/loafoe/cli@v7.1.0+incompatible/integration/v6/push/domain_test.go (about) 1 package push 2 3 import ( 4 "strings" 5 6 "code.cloudfoundry.org/cli/integration/helpers" 7 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 different domain values", func() { 15 var ( 16 appName string 17 domainName string 18 ) 19 20 BeforeEach(func() { 21 appName = helpers.NewAppName() 22 domainName = helpers.NewDomainName("http-domain") 23 }) 24 25 When("the domain flag is not provided", func() { 26 It("creates a route with the first shared domain", func() { 27 helpers.WithHelloWorldApp(func(dir string) { 28 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 29 PushCommandName, appName, "--no-start", 30 ) 31 Eventually(session).Should(Say(`\s+routes:\s+%s.%s`, strings.ToLower(appName), helpers.DefaultSharedDomain())) 32 Eventually(session).Should(Exit(0)) 33 }) 34 }) 35 }) 36 37 When("only the domain flag is provided", func() { 38 When("the domain does not exist", func() { 39 It("creates a route that has the specified domain", func() { 40 helpers.WithHelloWorldApp(func(dir string) { 41 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 42 PushCommandName, appName, "--no-start", 43 "-d", domainName, 44 ) 45 Eventually(session.Err).Should(Say("Domain '%s' not found.", domainName)) 46 Eventually(session).Should(Exit(1)) 47 }) 48 }) 49 }) 50 51 When("domain is an HTTP domain", func() { 52 var domain helpers.Domain 53 54 BeforeEach(func() { 55 domain = helpers.NewDomain(organization, domainName) 56 domain.Create() 57 }) 58 59 AfterEach(func() { 60 domain.Delete() 61 }) 62 63 It("creates a route that has the specified domain", func() { 64 helpers.WithHelloWorldApp(func(dir string) { 65 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 66 PushCommandName, appName, "--no-start", 67 "-d", domainName, 68 ) 69 Eventually(session).Should(Say(`\s+routes:\s+%s.%s`, strings.ToLower(appName), domainName)) 70 Eventually(session).Should(Exit(0)) 71 }) 72 }) 73 }) 74 75 When("domain is a TCP domain", func() { 76 var domain helpers.Domain 77 78 BeforeEach(func() { 79 domainName = helpers.NewDomainName("tcp-domain") 80 domain = helpers.NewDomain(organization, domainName) 81 domain.CreateWithRouterGroup(helpers.FindOrCreateTCPRouterGroup(GinkgoParallelNode())) 82 }) 83 84 AfterEach(func() { 85 domain.DeleteShared() 86 }) 87 88 It("creates a new route with the specified domain and a random port each time the app is pushed", func() { 89 helpers.WithHelloWorldApp(func(dir string) { 90 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 91 PushCommandName, appName, "--no-start", 92 "-d", domainName, 93 ) 94 Eventually(session).Should(Say(`\+\s+%s:\?\?\?\?`, domainName)) 95 Eventually(session).Should(Say(`\s+routes:\s+%s:\d+`, domainName)) 96 // instead of checking that the port is different each time we push 97 // the same app, we check that the push does not fail 98 Eventually(session).Should(Exit(0)) 99 100 session = helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 101 PushCommandName, appName, 102 "-d", domainName, 103 ) 104 Eventually(session).Should(Say(`\+\s+%s:\?\?\?\?`, domainName)) 105 Eventually(session).Should(Say(`\s+routes:\s+%s:\d+`, domainName)) 106 Eventually(session).Should(Exit(0)) 107 }) 108 }) 109 }) 110 }) 111 })