github.com/randomtask1155/cli@v6.41.1-0.20181227003417-a98eed78cbde+incompatible/integration/v7/global/env_command_test.go (about) 1 package global 2 3 import ( 4 "fmt" 5 6 "code.cloudfoundry.org/cli/integration/helpers" 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("env command", func() { 14 var ( 15 orgName string 16 spaceName string 17 appName string 18 envVarName string 19 envVarValue string 20 ) 21 22 BeforeEach(func() { 23 orgName = helpers.NewOrgName() 24 spaceName = helpers.NewSpaceName() 25 appName = helpers.PrefixedRandomName("app") 26 envVarName = "SOME_ENV_VAR" 27 envVarValue = "SOME_ENV_VAR_VALUE" 28 }) 29 30 Describe("help", func() { 31 When("--help flag is set", func() { 32 It("displays command usage to output", func() { 33 session := helpers.CF("env", "--help") 34 35 Eventually(session).Should(Say("NAME:")) 36 Eventually(session).Should(Say("env - Show all env variables for an app")) 37 Eventually(session).Should(Say("USAGE:")) 38 Eventually(session).Should(Say("cf env APP_NAME")) 39 Eventually(session).Should(Say("SEE ALSO:")) 40 Eventually(session).Should(Say("app, running-environment-variable-group, set-env, staging-environment-variable-group, unset-env, v3-apps")) 41 Eventually(session).Should(Exit(0)) 42 }) 43 }) 44 }) 45 46 When("the app name is not provided", func() { 47 It("tells the user that the app name is required, prints help text, and exits 1", func() { 48 session := helpers.CF("env") 49 50 Eventually(session.Err).Should(Say("Incorrect Usage: the required argument `APP_NAME` was not provided")) 51 Eventually(session).Should(Say("NAME:")) 52 Eventually(session).Should(Exit(1)) 53 }) 54 }) 55 56 When("the environment is not setup correctly", func() { 57 It("fails with the appropriate errors", func() { 58 helpers.CheckEnvironmentTargetedCorrectly(true, true, ReadOnlyOrg, "env", appName, envVarName, envVarValue) 59 }) 60 }) 61 62 When("the environment is set up correctly", func() { 63 var userName string 64 65 BeforeEach(func() { 66 helpers.SetupCF(orgName, spaceName) 67 userName, _ = helpers.GetCredentials() 68 }) 69 70 AfterEach(func() { 71 helpers.QuickDeleteOrg(orgName) 72 }) 73 74 When("the app does not exist", func() { 75 It("displays app not found and exits 1", func() { 76 invalidAppName := "invalid-app-name" 77 session := helpers.CF("env", invalidAppName) 78 79 Eventually(session).Should(Say(`Getting env variables for app %s in org %s / space %s as %s\.\.\.`, invalidAppName, orgName, spaceName, userName)) 80 Eventually(session).Should(Say("OK")) 81 82 Eventually(session.Err).Should(Say("App %s not found", invalidAppName)) 83 Eventually(session).Should(Say("FAILED")) 84 Eventually(session).Should(Exit(1)) 85 }) 86 }) 87 88 When("the app exists", func() { 89 var ( 90 userProvidedServiceName string 91 ) 92 BeforeEach(func() { 93 userProvidedServiceName = helpers.PrefixedRandomName("service") 94 helpers.WithHelloWorldApp(func(appDir string) { 95 Eventually(helpers.CF("push", appName, "-p", appDir)).Should(Exit(0)) 96 }) 97 98 Eventually(helpers.CF("set-env", appName, "user-provided-env-name", "user-provided-env-value")).Should(Exit(0)) 99 Eventually(helpers.CF("set-env", appName, "an-out-of-order-name", "some-env-value")).Should(Exit(0)) 100 Eventually(helpers.CF("set-env", appName, "Capital-env-var", "some-other-env-value")).Should(Exit(0)) 101 Eventually(helpers.CF("create-user-provided-service", userProvidedServiceName)).Should(Exit(0)) 102 Eventually(helpers.CF("bind-service", appName, userProvidedServiceName)).Should(Exit(0)) 103 Eventually(helpers.CF("set-running-environment-variable-group", `{"running-env-name": "running-env-value", "number": 1, "Xstring": "X"}`)).Should(Exit(0)) 104 Eventually(helpers.CF("set-staging-environment-variable-group", `{"staging-env-name": "staging-env-value", "number": 2, "Ystring": "Y"}`)).Should(Exit(0)) 105 }) 106 107 AfterEach(func() { 108 Eventually(helpers.CF("unbind-service", appName, userProvidedServiceName)).Should(Exit(0)) 109 Eventually(helpers.CF("delete-service", userProvidedServiceName)).Should(Exit(0)) 110 Eventually(helpers.CF("set-running-environment-variable-group", `{}`)).Should(Exit(0)) 111 Eventually(helpers.CF("set-staging-environment-variable-group", `{}`)).Should(Exit(0)) 112 }) 113 114 It("displays the environment variables", func() { 115 By("displaying env variables when they are set") 116 session := helpers.CF("env", appName) 117 118 Eventually(session).Should(Say(fmt.Sprintf(`Getting env variables for app %s in org %s / space %s as %s\.\.\.`, appName, orgName, spaceName, userName))) 119 Eventually(session).Should(Say("OK")) 120 121 Eventually(session).Should(Say("System-Provided:")) 122 Eventually(session).Should(Say(`VCAP_SERVICES: {\s*\n`)) 123 Eventually(session).Should(Say("VCAP_APPLICATION")) 124 125 Eventually(session).Should(Say("User-Provided:")) 126 Eventually(session).Should(Say(`Capital-env-var:\s+some-other-env-value`)) 127 Eventually(session).Should(Say(`an-out-of-order-name:\s+some-env-value`)) 128 Eventually(session).Should(Say(`user-provided-env-name:\s+user-provided-env-value`)) 129 130 Eventually(session).Should(Say("Running Environment Variable Groups:")) 131 Eventually(session).Should(Say(`Xstring:\s+X`)) 132 Eventually(session).Should(Say(`number:\s+1`)) 133 Eventually(session).Should(Say(`running-env-name:\s+running-env-value`)) 134 135 Eventually(session).Should(Say("Staging Environment Variable Groups:")) 136 Eventually(session).Should(Say(`Ystring:\s+Y`)) 137 Eventually(session).Should(Say(`number:\s+2`)) 138 Eventually(session).Should(Say(`staging-env-name:\s+staging-env-value`)) 139 140 Eventually(session).Should(Exit(0)) 141 142 By("displaying help messages when they are not set") 143 Eventually(helpers.CF("unset-env", appName, "user-provided-env-name")).Should(Exit(0)) 144 Eventually(helpers.CF("unset-env", appName, "an-out-of-order-name")).Should(Exit(0)) 145 Eventually(helpers.CF("unset-env", appName, "Capital-env-var")).Should(Exit(0)) 146 Eventually(helpers.CF("unbind-service", appName, userProvidedServiceName)).Should(Exit(0)) 147 Eventually(helpers.CF("set-running-environment-variable-group", `{}`)).Should(Exit(0)) 148 Eventually(helpers.CF("set-staging-environment-variable-group", `{}`)).Should(Exit(0)) 149 150 session = helpers.CF("env", appName) 151 Eventually(session).Should(Say(`Getting env variables for app %s in org %s / space %s as %s\.\.\.`, appName, orgName, spaceName, userName)) 152 Eventually(session).Should(Say("OK")) 153 154 Eventually(session).Should(Say("System-Provided:")) 155 Eventually(session).Should(Say("VCAP_SERVICES: {}")) 156 Eventually(session).Should(Say("VCAP_APPLICATION")) 157 158 Eventually(session).Should(Say("No user-provided env variables have been set")) 159 160 Eventually(session).Should(Say("No running env variables have been set")) 161 162 Eventually(session).Should(Say("No staging env variables have been set")) 163 Eventually(session).Should(Exit(0)) 164 }) 165 }) 166 }) 167 })