@@ -61,6 +61,7 @@ describe('Cluster Project and Members', { tags: ['@explorer2', '@adminUser'] },
61
61
} ) ;
62
62
} ) ;
63
63
} ) ;
64
+
64
65
it ( 'Clicking cancel should return to Cluster and Project members ' , ( ) => {
65
66
HomePagePo . goTo ( ) ;
66
67
const clusterMembership = new ClusterProjectMembersPo ( 'local' , 'cluster-membership' ) ;
@@ -73,6 +74,7 @@ describe('Cluster Project and Members', { tags: ['@explorer2', '@adminUser'] },
73
74
clusterMembership . cancelCreateForm ( ) . click ( ) ;
74
75
clusterMembership . waitForPageWithExactUrl ( ) ;
75
76
} ) ;
77
+
76
78
it ( 'Can create a member with custom permissions' , ( ) => {
77
79
// add user to Cluster membership
78
80
const projectMembership = new ClusterProjectMembersPo ( 'local' , 'project-membership' ) ;
@@ -82,12 +84,28 @@ describe('Cluster Project and Members', { tags: ['@explorer2', '@adminUser'] },
82
84
projectMembership . triggerAddProjectMemberAction ( 'default' ) ;
83
85
projectMembership . selectProjectCustomPermission ( ) ;
84
86
projectMembership . selectClusterOrProjectMember ( username ) ;
85
- projectMembership . checkTheseProjectCustomPermissions ( [ 0 , 1 ] ) ;
87
+
88
+ // testing https://github.com/rancher/dashboard/issues/13764
89
+ // select all project roles
90
+ projectMembership . customPermissionsCheckboxes ( ) . then ( ( $checkboxes ) => {
91
+ const indexes = Array . from ( { length : $checkboxes . length } , ( _ , i ) => i ) ;
92
+
93
+ projectMembership . checkTheseProjectCustomPermissions ( indexes ) ;
94
+ } ) ;
95
+
96
+ // store checkbox labels in an alias
97
+ projectMembership . customPermissionsCheckboxes ( ) . find ( 'span.checkbox-label' ) . then ( ( $labels ) => {
98
+ const labels = $labels . toArray ( ) . map ( ( label ) => Cypress . $ ( label ) . text ( ) . trim ( ) ) ;
99
+
100
+ cy . wrap ( labels ) . as ( 'checkboxLabels' ) ;
101
+ } ) ;
86
102
87
103
cy . intercept ( 'POST' , '/v3/projectroletemplatebindings' ) . as ( 'createProjectMembership' ) ;
88
104
projectMembership . submitProjectCreateButton ( ) ;
89
- cy . wait ( '@createProjectMembership' ) ;
105
+ cy . wait ( '@createProjectMembership' ) . its ( 'response.statusCode' ) . should ( 'eq' , 201 ) ;
106
+ projectMembership . createFormErrorBanner ( ) . checkNotExists ( ) ;
90
107
cy . get ( '.modal-overlay' ) . should ( 'not.exist' ) ;
108
+ projectMembership . waitForPage ( ) ;
91
109
92
110
projectMembership . goTo ( ) ;
93
111
projectMembership . waitForPageWithSpecificUrl ( '/c/local/explorer/members#project-membership' ) ;
@@ -96,12 +114,16 @@ describe('Cluster Project and Members', { tags: ['@explorer2', '@adminUser'] },
96
114
if ( el . find ( 'tr.no-rows' ) . is ( ':visible' ) ) {
97
115
cy . reload ( ) ;
98
116
}
117
+ } ) ;
99
118
119
+ // retrieve the labels and assert UI contains each label
120
+ cy . get ( '@checkboxLabels' ) . then ( ( labels : any ) => {
100
121
projectMembership . projectTable ( ) . rowElementWithName ( username ) . find ( 'td:nth-of-type(3)' ) . first ( )
101
122
. invoke ( 'text' )
102
123
. then ( ( t ) => {
103
- expect ( t ) . to . include ( 'Create Namespaces' ) ;
104
- expect ( t ) . to . include ( 'Manage Config Maps' ) ;
124
+ labels . forEach ( ( label ) => {
125
+ expect ( t ) . to . include ( label ) ;
126
+ } ) ;
105
127
} ) ;
106
128
} ) ;
107
129
} ) ;
0 commit comments