github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/integration/v7/isolated/space_users_command_test.go (about) 1 package isolated 2 3 import ( 4 "regexp" 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 "code.cloudfoundry.org/cli/api/cloudcontroller/ccversion" 12 "code.cloudfoundry.org/cli/integration/helpers" 13 ) 14 15 var _ = Describe("space-users command", func() { 16 Describe("help", func() { 17 When("--help flag is set", func() { 18 It("displays command usage to output", func() { 19 session := helpers.CF("space-users", "--help") 20 Eventually(session).Should(Say("NAME:")) 21 Eventually(session).Should(Say("space-users - Show space users by role")) 22 Eventually(session).Should(Say("USAGE:")) 23 Eventually(session).Should(Say(regexp.QuoteMeta("cf space-users ORG SPACE"))) 24 Eventually(session).Should(Say("SEE ALSO:")) 25 Eventually(session).Should(Say("org-users, orgs, set-space-role, spaces, unset-space-role")) 26 Eventually(session).Should(Exit(0)) 27 }) 28 }) 29 }) 30 31 When("the user is logged in", func() { 32 var ( 33 orgName string 34 spaceName string 35 adminUsername string 36 ) 37 38 BeforeEach(func() { 39 adminUsername = helpers.LoginCF() 40 orgName = helpers.NewOrgName() 41 spaceName = helpers.NewSpaceName() 42 helpers.CreateOrgAndSpace(orgName, spaceName) 43 }) 44 45 When("the target space has multiple users with different roles", func() { 46 var ( 47 spaceManagerUser string 48 spaceDeveloperUser string 49 spaceAuditorUser1 string 50 ) 51 52 BeforeEach(func() { 53 spaceManagerUser, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceManager") 54 spaceDeveloperUser, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceDeveloper") 55 spaceAuditorUser1, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceAuditor") 56 }) 57 58 It("prints the users in the target space under their roles", func() { 59 session := helpers.CF("space-users", orgName, spaceName) 60 Eventually(session).Should(Say("Getting users in org %s / space %s as %s", orgName, spaceName, adminUsername)) 61 Eventually(session).Should(Say("SPACE MANAGER")) 62 Eventually(session).Should(Say(`\s+%s \(uaa\)`, spaceManagerUser)) 63 Eventually(session).Should(Say("SPACE DEVELOPER")) 64 Eventually(session).Should(Say(`\s+%s \(uaa\)`, spaceDeveloperUser)) 65 Eventually(session).Should(Say("SPACE AUDITOR")) 66 Eventually(session).Should(Say(`\s+%s \(uaa\)`, spaceAuditorUser1)) 67 Eventually(session).Should(Exit(0)) 68 }) 69 }) 70 71 When("the target space has a client-credentials user", func() { 72 var ( 73 clientID string 74 spaceManagerUser string 75 ) 76 77 BeforeEach(func() { 78 spaceManagerUser, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceManager") 79 clientID, _ = helpers.SkipIfClientCredentialsNotSet() 80 Eventually(helpers.CF("set-space-role", clientID, orgName, spaceName, "SpaceDeveloper", "--client")).Should(Exit(0)) 81 }) 82 83 It("prints the client-credentials user", func() { 84 session := helpers.CF("space-users", orgName, spaceName) 85 Eventually(session).Should(Say("Getting users in org %s / space %s as %s", orgName, spaceName, adminUsername)) 86 Eventually(session).Should(Say("SPACE MANAGER")) 87 Eventually(session).Should(Say(`\s+%s`, spaceManagerUser)) 88 Eventually(session).Should(Say("SPACE DEVELOPER")) 89 Eventually(session).Should(Say(`\s+%s \(client\)`, clientID)) 90 Eventually(session).Should(Say("SPACE AUDITOR")) 91 Eventually(session).Should(Say(`\s+No SPACE AUDITOR found`)) 92 Eventually(session).Should(Exit(0)) 93 }) 94 }) 95 When("capi provides space supporter", func() { 96 var ( 97 spaceManagerUser string 98 spaceDeveloperUser string 99 spaceSupporterUser string 100 spaceAuditorUser1 string 101 ) 102 103 BeforeEach(func() { 104 helpers.SkipIfVersionLessThan(ccversion.MinVersionSpaceSupporterV3) 105 spaceManagerUser, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceManager") 106 spaceDeveloperUser, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceDeveloper") 107 spaceSupporterUser, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceSupporter") 108 spaceAuditorUser1, _ = helpers.CreateUserInSpaceRole(orgName, spaceName, "SpaceAuditor") 109 }) 110 111 It("prints the users in the target space under their roles", func() { 112 session := helpers.CF("space-users", orgName, spaceName) 113 Eventually(session).Should(Say("Getting users in org %s / space %s as %s", orgName, spaceName, adminUsername)) 114 Eventually(session).Should(Say("SPACE MANAGER")) 115 Eventually(session).Should(Say(`\s+%s \(uaa\)`, spaceManagerUser)) 116 Eventually(session).Should(Say("SPACE DEVELOPER")) 117 Eventually(session).Should(Say(`\s+%s \(uaa\)`, spaceDeveloperUser)) 118 Eventually(session).Should(Say("SPACE SUPPORTER")) 119 Eventually(session).Should(Say(`\s+%s \(uaa\)`, spaceSupporterUser)) 120 Eventually(session).Should(Say("SPACE AUDITOR")) 121 Eventually(session).Should(Say(`\s+%s \(uaa\)`, spaceAuditorUser1)) 122 Eventually(session).Should(Exit(0)) 123 }) 124 }) 125 }) 126 })