github.com/wanddynosios/cli/v8@v8.7.9-0.20240221182337-1a92e3a7017f/integration/v7/push/help_test.go (about)

     1  package push
     2  
     3  import (
     4  	"regexp"
     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("help", func() {
    15  	When("--help flag is set", func() {
    16  		It("Displays command usage to output", func() {
    17  			session := helpers.CF(PushCommandName, "--help")
    18  			Eventually(session).Should(Say("NAME:"))
    19  			Eventually(session).Should(Say("%s - Push a new app or sync changes to an existing app", PushCommandName))
    20  			Eventually(session).Should(Say("USAGE:"))
    21  
    22  			buildpackAppUsage := []string{
    23  				"cf",
    24  				PushCommandName,
    25  				"APP_NAME",
    26  				"[-b BUILDPACK_NAME]",
    27  				"[-c COMMAND]",
    28  				"[-f MANIFEST_PATH | --no-manifest]",
    29  				"[--no-start]",
    30  				"[--no-wait]",
    31  				"[-i NUM_INSTANCES]",
    32  				"[-k DISK]",
    33  				"[-m MEMORY]",
    34  				"[-l LOG_RATE_LIMIT]",
    35  				"[-p PATH]",
    36  				"[-s STACK]",
    37  				"[-t HEALTH_TIMEOUT]",
    38  				"[--task TASK]",
    39  				"[-u (process | port | http)]",
    40  				"[--no-route | --random-route]",
    41  				"[--var KEY=VALUE]",
    42  				"[--vars-file VARS_FILE_PATH]...",
    43  			}
    44  
    45  			dockerAppUsage := []string{
    46  				"cf",
    47  				PushCommandName,
    48  				"APP_NAME",
    49  				"--docker-image",
    50  				"[REGISTRY_HOST:PORT/]IMAGE[:TAG]",
    51  				"[--docker-username USERNAME]",
    52  				"[-c COMMAND]",
    53  				"[-f MANIFEST_PATH | --no-manifest]",
    54  				"[--no-start]",
    55  				"[--no-wait]",
    56  				"[-i NUM_INSTANCES]",
    57  				"[-k DISK]",
    58  				"[-m MEMORY]",
    59  				"[-l LOG_RATE_LIMIT]",
    60  				"[-p PATH]",
    61  				"[-s STACK]",
    62  				"[-t HEALTH_TIMEOUT]",
    63  				"[--task TASK]",
    64  				"[-u (process | port | http)]",
    65  				"[--no-route | --random-route ]",
    66  				"[--var KEY=VALUE]",
    67  				"[--vars-file VARS_FILE_PATH]...",
    68  			}
    69  
    70  			assertUsage(session, buildpackAppUsage, dockerAppUsage)
    71  
    72  			Eventually(session).Should(Say("OPTIONS:"))
    73  			Eventually(session).Should(Say(`--app-start-timeout, -t`))
    74  			Eventually(session).Should(Say(`--buildpack, -b`))
    75  			Eventually(session).Should(Say(`--disk, -k`))
    76  			Eventually(session).Should(Say(`--docker-image, -o`))
    77  			Eventually(session).Should(Say(`--docker-username`))
    78  			Eventually(session).Should(Say(`--droplet`))
    79  			Eventually(session).Should(Say(`--endpoint`))
    80  			Eventually(session).Should(Say(`--health-check-type, -u`))
    81  			Eventually(session).Should(Say(`--instances, -i`))
    82  			Eventually(session).Should(Say(`--log-rate-limit, -l\s+Log rate limit per second, in bytes \(e.g. 128B, 4K, 1M\). -l=-1 represents unlimited`))
    83  			Eventually(session).Should(Say(`--manifest, -f`))
    84  			Eventually(session).Should(Say(`--memory, -m`))
    85  			Eventually(session).Should(Say(`--no-manifest`))
    86  			Eventually(session).Should(Say(`--no-route`))
    87  			Eventually(session).Should(Say(`--no-start`))
    88  			Eventually(session).Should(Say(`--no-wait`))
    89  			Eventually(session).Should(Say(`--path, -p`))
    90  			Eventually(session).Should(Say(`--random-route`))
    91  			Eventually(session).Should(Say(`--stack, -s`))
    92  			Eventually(session).Should(Say(`--start-command, -c`))
    93  			Eventually(session).Should(Say(`--strategy`))
    94  			Eventually(session).Should(Say(`--task`))
    95  			Eventually(session).Should(Say(`--var`))
    96  			Eventually(session).Should(Say(`--vars-file`))
    97  			Eventually(session).Should(Say("ENVIRONMENT:"))
    98  			Eventually(session).Should(Say(`CF_DOCKER_PASSWORD=\s+Password used for private docker repository`))
    99  			Eventually(session).Should(Say(`CF_STAGING_TIMEOUT=15\s+Max wait time for staging, in minutes`))
   100  			Eventually(session).Should(Say(`CF_STARTUP_TIMEOUT=5\s+Max wait time for app instance startup, in minutes`))
   101  
   102  			Eventually(session).Should(Exit(0))
   103  		})
   104  	})
   105  })
   106  
   107  func assertUsage(session *Session, usages ...[]string) {
   108  	for _, usage := range usages {
   109  		for k, v := range usage {
   110  			usage[k] = regexp.QuoteMeta(v)
   111  		}
   112  		Eventually(session).Should(Say(
   113  			strings.Join(usage, `\s+`)),
   114  		)
   115  	}
   116  }