github.com/loafoe/cli@v7.1.0+incompatible/integration/v6/push/instances_test.go (about) 1 package push 2 3 import ( 4 "code.cloudfoundry.org/cli/integration/helpers" 5 6 . "github.com/onsi/ginkgo" 7 . "github.com/onsi/gomega" 8 . "github.com/onsi/gomega/gbytes" 9 . "github.com/onsi/gomega/gexec" 10 ) 11 12 var _ = Describe("push with different instances values", func() { 13 var ( 14 appName string 15 ) 16 17 BeforeEach(func() { 18 appName = helpers.NewAppName() 19 }) 20 21 When("instances flag is provided", func() { 22 When("instances flag is greater than 0", func() { 23 It("pushes an app with specified number of instances", func() { 24 helpers.WithHelloWorldApp(func(dir string) { 25 By("pushing an app with 2 instances") 26 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 27 PushCommandName, appName, 28 "-i", "2", 29 ) 30 Eventually(session).Should(Say(`\s+instances:\s+2`)) 31 Eventually(session).Should(Exit(0)) 32 33 session = helpers.CF("app", appName) 34 Eventually(session).Should(Say(`instances:\s+\d/2`)) 35 Eventually(session).Should(Exit(0)) 36 37 By("updating an app with 1 instance") 38 session = helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 39 PushCommandName, appName, 40 "-i", "1", 41 ) 42 Eventually(session).Should(Say(`\-\s+instances:\s+2`)) 43 Eventually(session).Should(Say(`\+\s+instances:\s+1`)) 44 Eventually(session).Should(Exit(0)) 45 46 session = helpers.CF("app", appName) 47 Eventually(session).Should(Say(`instances:\s+\d/1`)) 48 Eventually(session).Should(Exit(0)) 49 }) 50 }) 51 }) 52 53 When("instances flag is set to 0", func() { 54 It("pushes an app with 0 instances", func() { 55 helpers.WithHelloWorldApp(func(dir string) { 56 By("pushing an app with 0 instances") 57 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 58 PushCommandName, appName, 59 "-i", "0", 60 ) 61 62 Eventually(session).Should(Say(`\s+instances:\s+0`)) 63 Eventually(session).Should(Exit(0)) 64 65 session = helpers.CF("app", appName) 66 Eventually(session).Should(Say("There are no running instances of this process.")) 67 Eventually(session).Should(Exit(0)) 68 69 By("updating an app to 1 instance") 70 session = helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 71 PushCommandName, appName, 72 "-i", "1", 73 ) 74 Eventually(session).Should(Say(`\-\s+instances:\s+0`)) 75 Eventually(session).Should(Say(`\+\s+instances:\s+1`)) 76 Eventually(session).Should(Exit(0)) 77 78 session = helpers.CF("app", appName) 79 Eventually(session).Should(Say(`instances:\s+\d/1`)) 80 Eventually(session).Should(Exit(0)) 81 82 By("updating an app back to 0 instances") 83 session = helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 84 PushCommandName, appName, 85 "-i", "0", 86 ) 87 Eventually(session).Should(Say(`\-\s+instances:\s+1`)) 88 Eventually(session).Should(Say(`\+\s+instances:\s+0`)) 89 Eventually(session).Should(Exit(0)) 90 91 session = helpers.CF("app", appName) 92 Eventually(session).Should(Say("There are no running instances of this process.")) 93 Eventually(session).Should(Exit(0)) 94 }) 95 }) 96 }) 97 }) 98 99 When("instances flag is not provided", func() { 100 When("app does not exist", func() { 101 It("pushes an app with default number of instances", func() { 102 helpers.WithHelloWorldApp(func(dir string) { 103 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 104 PushCommandName, appName, 105 ) 106 Eventually(session).Should(Say(`\s+instances:\s+1`)) 107 Eventually(session).Should(Exit(0)) 108 }) 109 110 session := helpers.CF("app", appName) 111 Eventually(session).Should(Say(`instances:\s+\d/1`)) 112 Eventually(session).Should(Exit(0)) 113 }) 114 }) 115 116 When("app exists with some instances", func() { 117 It("does not update the number of instances", func() { 118 helpers.WithHelloWorldApp(func(dir string) { 119 By("pushing an app with 2 instances") 120 session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 121 PushCommandName, appName, 122 "-i", "2", 123 ) 124 Eventually(session).Should(Say(`\s+instances:\s+2`)) 125 Eventually(session).Should(Exit(0)) 126 127 session = helpers.CF("app", appName) 128 Eventually(session).Should(Say(`instances:\s+\d/2`)) 129 Eventually(session).Should(Exit(0)) 130 131 By("pushing an app with no instances specified") 132 session = helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir}, 133 PushCommandName, appName, 134 ) 135 Eventually(session).Should(Say(`\s+instances:\s+2`)) 136 Eventually(session).Should(Exit(0)) 137 }) 138 }) 139 }) 140 }) 141 })