github.com/arunkumar7540/cli@v6.45.0+incompatible/integration/v7/isolated/domains_command_test.go (about) 1 package isolated 2 3 import ( 4 "code.cloudfoundry.org/cli/api/cloudcontroller/ccversion" 5 "code.cloudfoundry.org/cli/integration/helpers" 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("domains command", func() { 13 Describe("help", func() { 14 When("--help flag is set", func() { 15 It("displays command usage to output", func() { 16 session := helpers.CF("domains", "--help") 17 Eventually(session).Should(Say("NAME:")) 18 Eventually(session).Should(Say(`\s+domains - List domains in the target org`)) 19 Eventually(session).Should(Say("USAGE:")) 20 Eventually(session).Should(Say(`\s+cf domains`)) 21 Eventually(session).Should(Say("SEE ALSO:")) 22 Eventually(session).Should(Say(`\s+create-private-domain, create-route, create-shared-domain, routes`)) 23 Eventually(session).Should(Exit(0)) 24 }) 25 }) 26 }) 27 28 When("user is not logged in", func() { 29 BeforeEach(func() { 30 helpers.LogoutCF() 31 }) 32 33 It("displays an error message and fails", func() { 34 session := helpers.CF("domains") 35 Eventually(session).Should(Say("FAILED")) 36 Eventually(session.Err).Should(Say("Not logged in. Use 'cf login' to log in.")) 37 Eventually(session).Should(Exit(1)) 38 }) 39 }) 40 41 When("a random argument is passed to the command", func() { 42 It("displays an error message and fails", func() { 43 session := helpers.CF("domains", "random-arg") 44 Eventually(session).Should(Say("FAILED")) 45 Eventually(session.Err).Should(Say(`Incorrect Usage: unexpected argument "random-arg"`)) 46 Eventually(session).Should(Say("NAME:")) 47 Eventually(session).Should(Say(`\s+domains - List domains in the target org`)) 48 Eventually(session).Should(Say("USAGE:")) 49 Eventually(session).Should(Say(`\s+cf domains`)) 50 Eventually(session).Should(Exit(1)) 51 }) 52 }) 53 54 When("logged in as admin", func() { 55 When("no org is targeted", func() { 56 BeforeEach(func() { 57 helpers.LoginCF() 58 }) 59 60 It("displays an error message and fails", func() { 61 session := helpers.CF("domains") 62 Eventually(session).Should(Say("FAILED")) 63 Eventually(session.Err).Should(Say(`No org targeted, use 'cf target -o ORG' to target an org.`)) 64 Eventually(session).Should(Exit(1)) 65 }) 66 }) 67 68 When("an org is targeted", func() { 69 var ( 70 orgName string 71 sharedDomain1 helpers.Domain 72 sharedDomain2 helpers.Domain 73 ) 74 75 BeforeEach(func() { 76 orgName = helpers.NewOrgName() 77 spaceName := helpers.NewSpaceName() 78 helpers.SetupCF(orgName, spaceName) 79 80 sharedDomain1 = helpers.NewDomain(orgName, helpers.NewDomainName("a")) 81 sharedDomain1.CreateShared() 82 83 sharedDomain2 = helpers.NewDomain(orgName, helpers.NewDomainName("b")) 84 sharedDomain2.CreateShared() 85 }) 86 87 When("the targeted org has shared domains", func() { 88 It("displays the shared domains and denotes that they are shared", func() { 89 session := helpers.CF("domains") 90 91 Eventually(session).Should(Say(`Getting domains in org %s as admin\.\.\.`, orgName)) 92 Eventually(session).Should(Say(`name\s+availability\s+internal`)) 93 Eventually(session).Should(Say(`%s\s+shared\s+`, sharedDomain1.Name)) 94 Eventually(session).Should(Say(`%s\s+shared\s+`, sharedDomain2.Name)) 95 Eventually(session).Should(Exit(0)) 96 }) 97 98 When("the shared domain is internal", func() { 99 var internalDomainName string 100 101 BeforeEach(func() { 102 helpers.SkipIfVersionLessThan(ccversion.MinVersionInternalDomainV2) 103 internalDomainName = helpers.NewDomainName() 104 internalDomain := helpers.NewDomain(orgName, internalDomainName) 105 internalDomain.CreateInternal() 106 }) 107 108 It("displays the internal flag on the shared domain", func() { 109 session := helpers.CF("domains") 110 111 Eventually(session).Should(Say(`Getting domains in org %s as admin`, orgName)) 112 Eventually(session).Should(Say(`name\s+availability\s+internal`)) 113 Eventually(session).Should(Say(`%s\s+shared\s+true`, internalDomainName)) 114 Eventually(session).Should(Exit(0)) 115 }) 116 }) 117 }) 118 119 When("the targeted org has a private domain", func() { 120 var privateDomain1, privateDomain2 helpers.Domain 121 122 BeforeEach(func() { 123 privateDomain1 = helpers.NewDomain(orgName, helpers.NewDomainName("a")) 124 privateDomain1.Create() 125 126 privateDomain2 = helpers.NewDomain(orgName, helpers.NewDomainName("b")) 127 privateDomain2.Create() 128 }) 129 130 It("displays the private domains", func() { 131 session := helpers.CF("domains") 132 133 Eventually(session).Should(Say(`Getting domains in org %s as admin`, orgName)) 134 Eventually(session).Should(Say(`name\s+availability\s+internal`)) 135 Eventually(session).Should(Say(`%s\s+private\s+`, privateDomain1.Name)) 136 Eventually(session).Should(Say(`%s\s+private\s+`, privateDomain2.Name)) 137 Eventually(session).Should(Exit(0)) 138 }) 139 140 When("targeting a different org", func() { 141 var ( 142 newOrgName string 143 privateDomain3 helpers.Domain 144 ) 145 146 BeforeEach(func() { 147 newOrgName = helpers.NewOrgName() 148 newSpaceName := helpers.NewSpaceName() 149 helpers.SetupCF(newOrgName, newSpaceName) 150 151 privateDomain3 = helpers.NewDomain(newOrgName, helpers.NewDomainName("c")) 152 privateDomain3.Create() 153 }) 154 155 It("should not display the private domains of other orgs", func() { 156 session := helpers.CF("domains") 157 158 Eventually(session).Should(Say(`Getting domains in org %s as admin`, newOrgName)) 159 Eventually(session).Should(Say(`name\s+availability\s+internal`)) 160 161 Consistently(session).ShouldNot(Say(`%s`, privateDomain1.Name)) 162 Consistently(session).ShouldNot(Say(`%s`, privateDomain2.Name)) 163 164 Eventually(session).Should(Say(`%s\s+shared\s+`, sharedDomain1.Name)) 165 Eventually(session).Should(Say(`%s\s+shared\s+`, sharedDomain2.Name)) 166 Eventually(session).Should(Say(`%s\s+private\s+`, privateDomain3.Name)) 167 Eventually(session).Should(Exit(0)) 168 }) 169 }) 170 171 When("logged in as a user that cannot see private domains", func() { 172 var username string 173 174 BeforeEach(func() { 175 username = helpers.SwitchToOrgRole(orgName, "BillingManager") 176 helpers.TargetOrg(orgName) 177 }) 178 179 It("only prints the shared domains", func() { 180 session := helpers.CF("domains") 181 182 Eventually(session).Should(Say(`Getting domains in org %s as %s`, orgName, username)) 183 Eventually(session).Should(Say(`name\s+availability\s+internal`)) 184 Eventually(session).Should(Say(`%s\s+shared\s+`, sharedDomain1.Name)) 185 Eventually(session).Should(Say(`%s\s+shared\s+`, sharedDomain2.Name)) 186 187 Consistently(session).ShouldNot(Say(privateDomain1.Name)) 188 Consistently(session).ShouldNot(Say(privateDomain2.Name)) 189 190 Eventually(session).Should(Exit(0)) 191 }) 192 }) 193 }) 194 }) 195 }) 196 })