@@ -99,6 +99,17 @@ describe('useGlobalEntityCreation', () => {
99
99
expect ( menu . value [ 0 ] . submenu ?. length ) . toBe ( 4 ) ;
100
100
expect ( menu . value [ 1 ] . submenu ?. length ) . toBe ( 4 ) ;
101
101
} ) ;
102
+
103
+ it ( 'disables project creation item if user has no rbac permission' , ( ) => {
104
+ const projectsStore = mockedStore ( useProjectsStore ) ;
105
+ projectsStore . canCreateProjects = true ;
106
+ projectsStore . isTeamProjectFeatureEnabled = true ;
107
+ projectsStore . hasPermissionToCreateProjects = false ;
108
+
109
+ const { menu, projectsLimitReachedMessage } = useGlobalEntityCreation ( ) ;
110
+ expect ( menu . value [ 2 ] . disabled ) . toBeTruthy ( ) ;
111
+ expect ( projectsLimitReachedMessage . value ) . toContain ( 'Your current role does not allow you' ) ;
112
+ } ) ;
102
113
} ) ;
103
114
104
115
describe ( 'handleSelect()' , ( ) => {
@@ -115,6 +126,7 @@ describe('useGlobalEntityCreation', () => {
115
126
const projectsStore = mockedStore ( useProjectsStore ) ;
116
127
projectsStore . isTeamProjectFeatureEnabled = true ;
117
128
projectsStore . canCreateProjects = true ;
129
+ projectsStore . hasPermissionToCreateProjects = true ;
118
130
projectsStore . createProject . mockResolvedValueOnce ( { name : 'test' , id : '1' } as Project ) ;
119
131
120
132
const { handleSelect } = useGlobalEntityCreation ( ) ;
@@ -132,6 +144,7 @@ describe('useGlobalEntityCreation', () => {
132
144
const projectsStore = mockedStore ( useProjectsStore ) ;
133
145
projectsStore . isTeamProjectFeatureEnabled = true ;
134
146
projectsStore . canCreateProjects = true ;
147
+ projectsStore . hasPermissionToCreateProjects = true ;
135
148
projectsStore . createProject . mockRejectedValueOnce ( new Error ( 'error' ) ) ;
136
149
137
150
const { handleSelect } = useGlobalEntityCreation ( ) ;
@@ -162,6 +175,7 @@ describe('useGlobalEntityCreation', () => {
162
175
const projectsStore = mockedStore ( useProjectsStore ) ;
163
176
projectsStore . isTeamProjectFeatureEnabled = true ;
164
177
projectsStore . teamProjectsLimit = 10 ;
178
+ projectsStore . hasPermissionToCreateProjects = true ;
165
179
166
180
settingsStore . isCloudDeployment = true ;
167
181
const { projectsLimitReachedMessage, upgradeLabel } = useGlobalEntityCreation ( ) ;
0 commit comments