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  })