github.com/arunkumar7540/cli@v6.45.0+incompatible/integration/v7/isolated/delete_route_command_test.go (about)

     1  package isolated
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/integration/helpers"
     5  	. "github.com/onsi/ginkgo"
     6  	. "github.com/onsi/gomega"
     7  	. "github.com/onsi/gomega/gbytes"
     8  	. "github.com/onsi/gomega/gexec"
     9  )
    10  
    11  var _ = Describe("delete-route command", func() {
    12  	Context("Help", func() {
    13  		It("displays the help information", func() {
    14  			session := helpers.CF("delete-route", "--help")
    15  			Eventually(session).Should(Say(`NAME:`))
    16  			Eventually(session).Should(Say(`delete-route - Delete a route\n`))
    17  			Eventually(session).Should(Say(`\n`))
    18  
    19  			Eventually(session).Should(Say(`USAGE:`))
    20  			Eventually(session).Should(Say(`cf delete-route DOMAIN \[--hostname HOSTNAME\] \[--path PATH\] \[-f\]\n`))
    21  			Eventually(session).Should(Say(`\n`))
    22  
    23  			Eventually(session).Should(Say(`EXAMPLES:`))
    24  			Eventually(session).Should(Say(`cf delete-route example.com\s+# example.com`))
    25  			Eventually(session).Should(Say(`cf delete-route example.com --hostname myhost\s+# myhost.example.com`))
    26  			Eventually(session).Should(Say(`cf delete-route example.com --hostname myhost --path foo\s+# myhost.example.com/foo`))
    27  			Eventually(session).Should(Say(`\n`))
    28  
    29  			Eventually(session).Should(Say(`OPTIONS:`))
    30  			Eventually(session).Should(Say(`-f\s+Force deletion without confirmation`))
    31  			Eventually(session).Should(Say(`--hostname, -n\s+Hostname used to identify the HTTP route \(required for shared domains\)`))
    32  			Eventually(session).Should(Say(`--path\s+Path used to identify the HTTP route`))
    33  			Eventually(session).Should(Say(`\n`))
    34  
    35  			Eventually(session).Should(Say(`SEE ALSO:`))
    36  			Eventually(session).Should(Say(`delete-orphaned-routes, routes, unmap-route`))
    37  
    38  			Eventually(session).Should(Exit(0))
    39  		})
    40  	})
    41  
    42  	When("the environment is not setup correctly", func() {
    43  		It("fails with the appropriate errors", func() {
    44  			helpers.CheckEnvironmentTargetedCorrectly(true, false, ReadOnlyOrg, "delete-route", "some-domain")
    45  		})
    46  	})
    47  
    48  	When("the environment is set up correctly", func() {
    49  		var (
    50  			orgName   string
    51  			spaceName string
    52  		)
    53  
    54  		BeforeEach(func() {
    55  			orgName = helpers.NewOrgName()
    56  			spaceName = helpers.NewSpaceName()
    57  
    58  			helpers.SetupCF(orgName, spaceName)
    59  		})
    60  
    61  		AfterEach(func() {
    62  			helpers.QuickDeleteOrg(orgName)
    63  		})
    64  
    65  		When("the space and domain exist", func() {
    66  			var (
    67  				domainName string
    68  			)
    69  
    70  			BeforeEach(func() {
    71  				domainName = helpers.NewDomainName()
    72  			})
    73  
    74  			When("the route does not exist", func() {
    75  				var (
    76  					domain helpers.Domain
    77  				)
    78  
    79  				BeforeEach(func() {
    80  					domain = helpers.NewDomain(orgName, domainName)
    81  					domain.CreatePrivate()
    82  				})
    83  
    84  				AfterEach(func() {
    85  					domain.Delete()
    86  				})
    87  
    88  				It("warns the user that it has already been deleted and runs to completion without failing", func() {
    89  					session := helpers.CF("delete-route", domainName, "-f")
    90  					Eventually(session).Should(Say(`Deleting route %s\.\.\.`, domainName))
    91  					Eventually(session).Should(Say(`Unable to delete\. Route with domain '%s' not found\.`, domainName))
    92  					Eventually(session).Should(Exit(0))
    93  				})
    94  			})
    95  
    96  			When("the route exist", func() {
    97  				When("the domain is private", func() {
    98  					var domain helpers.Domain
    99  
   100  					BeforeEach(func() {
   101  						domain = helpers.NewDomain(orgName, domainName)
   102  						domain.Create()
   103  					})
   104  
   105  					AfterEach(func() {
   106  						domain.Delete()
   107  					})
   108  
   109  					When("no flags are used", func() {
   110  						It("deletes the route", func() {
   111  							Eventually(helpers.CF("create-route", domainName)).Should(Exit(0))
   112  
   113  							session := helpers.CF("delete-route", domainName, "-f")
   114  							Eventually(session).Should(Say(`Deleting route %s\.\.\.`, domainName))
   115  							Eventually(session).Should(Say(`OK`))
   116  							Eventually(session).Should(Exit(0))
   117  						})
   118  					})
   119  
   120  					When("passing in a hostname", func() {
   121  						It("deletes the route with the hostname", func() {
   122  							hostname := "tiramisu"
   123  							Eventually(helpers.CF("create-route", domainName, "-n", hostname)).Should(Exit(0))
   124  
   125  							session := helpers.CF("delete-route", domainName, "-n", hostname, "-f")
   126  							Eventually(session).Should(Say(`Deleting route %s\.%s\.\.\.`, hostname, domainName))
   127  							Eventually(session).Should(Say(`OK`))
   128  							Eventually(session).Should(Exit(0))
   129  						})
   130  					})
   131  
   132  					When("passing in hostname and path with a leading '/'", func() {
   133  						It("deletes the route with hostname and path", func() {
   134  							hostname := "tiramisu"
   135  							pathString := "/recipes"
   136  							Eventually(helpers.CF("create-route", domainName, "-n", hostname, "--path", pathString)).Should(Exit(0))
   137  
   138  							session := helpers.CF("delete-route", domainName, "-n", hostname, "--path", pathString, "-f")
   139  							Eventually(session).Should(Say(`Deleting route %s\.%s%s\.\.\.`, hostname, domainName, pathString))
   140  							Eventually(session).Should(Say(`OK`))
   141  							Eventually(session).Should(Exit(0))
   142  						})
   143  					})
   144  
   145  					When("passing in hostname and path without a leading '/'", func() {
   146  						It("deletes the route with hostname and path", func() {
   147  							hostname := "tiramisu"
   148  							pathString := "more-recipes"
   149  							Eventually(helpers.CF("create-route", domainName, "-n", hostname, "--path", pathString)).Should(Exit(0))
   150  
   151  							session := helpers.CF("delete-route", domainName, "-n", hostname, "--path", pathString, "-f")
   152  							Eventually(session).Should(Say(`Deleting route %s\.%s\/%s\.\.\.`, hostname, domainName, pathString))
   153  							Eventually(session).Should(Say(`OK`))
   154  							Eventually(session).Should(Exit(0))
   155  						})
   156  					})
   157  				})
   158  
   159  				When("the domain is shared", func() {
   160  					var domain helpers.Domain
   161  
   162  					BeforeEach(func() {
   163  						domain = helpers.NewDomain("", domainName)
   164  						domain.CreateShared()
   165  					})
   166  
   167  					AfterEach(func() {
   168  						domain.DeleteShared()
   169  					})
   170  
   171  					When("no flags are used", func() {
   172  						It("fails with a helpful message", func() {
   173  							session := helpers.CF("delete-route", domainName, "-f")
   174  							Eventually(session).Should(Say(`Deleting route %s\.\.\.`, domainName))
   175  							Eventually(session).Should(Say(`Unable to delete\. Route with domain '%s' not found\.`, domainName))
   176  							Eventually(session).Should(Say(`OK`))
   177  							Eventually(session).Should(Exit(0))
   178  						})
   179  					})
   180  
   181  					When("passing in a hostname", func() {
   182  						It("deletes the route with the hostname", func() {
   183  							hostname := "tiramisu"
   184  							Eventually(helpers.CF("create-route", domainName, "-n", hostname)).Should(Exit(0))
   185  
   186  							session := helpers.CF("delete-route", domainName, "-n", hostname, "-f")
   187  							Eventually(session).Should(Say(`Deleting route %s\.%s\.\.\.`, hostname, domainName))
   188  							Eventually(session).Should(Say(`OK`))
   189  							Eventually(session).Should(Exit(0))
   190  						})
   191  					})
   192  
   193  					When("passing in hostname and path with a leading '/'", func() {
   194  						It("deletes the route with hostname and path", func() {
   195  							hostname := "tiramisu"
   196  							pathString := "/recipes"
   197  							Eventually(helpers.CF("create-route", domainName, "-n", hostname, "--path", pathString)).Should(Exit(0))
   198  
   199  							session := helpers.CF("delete-route", domainName, "-n", hostname, "--path", pathString, "-f")
   200  							Eventually(session).Should(Say(`Deleting route %s\.%s%s\.\.\.`, hostname, domainName, pathString))
   201  							Eventually(session).Should(Say(`OK`))
   202  							Eventually(session).Should(Exit(0))
   203  						})
   204  					})
   205  
   206  					When("passing in hostname and path without a leading '/'", func() {
   207  						It("deletes the route with hostname and path", func() {
   208  							hostname := "tiramisu"
   209  							pathString := "more-recipes"
   210  							Eventually(helpers.CF("create-route", domainName, "-n", hostname, "--path", pathString)).Should(Exit(0))
   211  
   212  							session := helpers.CF("delete-route", domainName, "-n", hostname, "--path", pathString, "-f")
   213  							Eventually(session).Should(Say(`Deleting route %s\.%s\/%s\.\.\.`, hostname, domainName, pathString))
   214  							Eventually(session).Should(Say(`OK`))
   215  							Eventually(session).Should(Exit(0))
   216  						})
   217  					})
   218  				})
   219  			})
   220  		})
   221  
   222  		When("the domain does not exist", func() {
   223  			It("displays error and exits 1", func() {
   224  				session := helpers.CF("delete-route", "some-domain", "-f")
   225  				Eventually(session).Should(Say(`FAILED`))
   226  				Eventually(session.Err).Should(Say(`Domain 'some-domain' not found.`))
   227  				Eventually(session).Should(Exit(1))
   228  			})
   229  		})
   230  
   231  		When("the domain is not specified", func() {
   232  			It("displays error and exits 1", func() {
   233  				session := helpers.CF("delete-route")
   234  				Eventually(session.Err).Should(Say("Incorrect Usage: the required argument `DOMAIN` was not provided\n"))
   235  				Eventually(session.Err).Should(Say("\n"))
   236  				Eventually(session).Should(Say("NAME:\n"))
   237  				Eventually(session).Should(Exit(1))
   238  			})
   239  		})
   240  	})
   241  })