@@ -3,8 +3,16 @@ import {
33 LABEL_CONFIG_KEYS ,
44 BUTTON_CONFIG_KEYS ,
55 FIELD_CONFIG_KEYS ,
6- } from '../../../support/commands/constants/command_constants' ;
7- import { flashClassMap } from '../../../support/assertions/assertion_constants' ;
6+ } from '../../../../support/commands/constants/command_constants' ;
7+ import { flashClassMap } from '../../../../support/assertions/assertion_constants' ;
8+
9+ // Field labels
10+ const LABEL_FULL_NAME = 'Full Name' ;
11+ const LABEL_ID = 'ID' ;
12+ const LABEL_USER_NAME = 'Username'
13+ const LABEL_EMAIL = 'E-mail Address'
14+ const LABEL_CURRENT_GROUP = 'Current Group' ;
15+ const LABEL_ROLE = 'Role'
816
917// Field values
1018const EVM_GROUP_SUPER_ADMIN = 'EvmGroup-super_administrator' ;
@@ -30,6 +38,12 @@ const SETTINGS_MENU_OPTION = 'Settings';
3038const APP_SETTINGS_MENU_OPTION = 'Application Settings' ;
3139const LOGOUT_MENU_OPTION = 'Logout' ;
3240
41+ // Toolbar options
42+ const EDIT_USER_CONFIG_OPTION = 'Edit this User'
43+ const ADD_USER_CONFIG_OPTION = 'Add a new User' ;
44+ const DELETE_USER_CONFIG_OPTION = 'Delete this User' ;
45+ const COPY_USER_CONFIG_OPTION = 'Copy this User to a new User' ;
46+
3347// Accordion labels
3448const ACCESS_CONTROL_ACCORDION_LABEL = 'Access Control' ;
3549const MANAGEIQ_REGION_ACCORDION_LABEL = / ^ M a n a g e I Q R e g i o n : / ;
@@ -45,11 +59,9 @@ function selectToolbarOption({ toolbar = 'Configuration', option }) {
4559 } ) ;
4660}
4761
48- function assertSelectedGroups ( selectedGroups , parentSelector , childSelector ) {
49- cy . get ( parentSelector ) . within ( ( ) => {
50- selectedGroups . forEach ( ( item ) => {
51- cy . get ( childSelector ) . should ( 'contain.text' , item ) ;
52- } ) ;
62+ function assertSelectedGroups ( selectedGroups , childSelector ) {
63+ selectedGroups . forEach ( ( item ) => {
64+ cy . get ( childSelector ) . should ( 'contain.text' , item ) ;
5365 } ) ;
5466}
5567
@@ -82,27 +94,25 @@ function assertUserInformation({
8294 role,
8395 selectedGroups = [ ] ,
8496} ) {
85- cy . contains ( getUserInfoElementSelector ( 1 , 'label_header' ) , 'ID' ) ;
86- cy . contains ( getUserInfoElementSelector ( 2 , 'label_header' ) , 'Full Name' ) ;
97+ cy . contains ( getUserInfoElementSelector ( 1 , 'label_header' ) , LABEL_ID ) ;
98+ cy . contains ( getUserInfoElementSelector ( 2 , 'label_header' ) , LABEL_FULL_NAME ) ;
8799 cy . contains ( getUserInfoElementSelector ( 2 , 'content_value' ) , fullName ) ;
88- cy . contains ( getUserInfoElementSelector ( 3 , 'label_header' ) , 'Username' ) ;
100+ cy . contains ( getUserInfoElementSelector ( 3 , 'label_header' ) , LABEL_USER_NAME ) ;
89101 cy . contains ( getUserInfoElementSelector ( 3 , 'content_value' ) , userName ) ;
90- cy . contains ( getUserInfoElementSelector ( 4 , 'label_header' ) , 'E-mail Address' ) ;
102+ cy . contains ( getUserInfoElementSelector ( 4 , 'label_header' ) , LABEL_EMAIL ) ;
91103 email
92104 ? cy . contains ( getUserInfoElementSelector ( 4 , 'content_value' ) , email )
93105 : cy
94106 . get ( getUserInfoElementSelector ( 4 , 'content_value' ) )
95107 . invoke ( 'text' )
96108 . should ( 'be.empty' ) ;
97- cy . contains ( getUserInfoElementSelector ( 5 , 'label_header' ) , 'Current Group' ) ;
109+ cy . contains ( getUserInfoElementSelector ( 5 , 'label_header' ) , LABEL_CURRENT_GROUP ) ;
98110 cy . contains ( getUserInfoElementSelector ( 5 , 'content_value' ) , currentGroup ) ;
99- cy . contains ( getUserInfoElementSelector ( 6 , 'label_header' ) , 'Role' ) ;
111+ cy . contains ( getUserInfoElementSelector ( 6 , 'label_header' ) , LABEL_ROLE ) ;
100112 cy . contains ( getUserInfoElementSelector ( 6 , 'content_value' ) , role ) ;
101- assertSelectedGroups (
102- selectedGroups ,
103- 'ul.settings_schedule_groups_information' ,
104- '.cds--link .content .expand'
105- ) ;
113+ cy . get ( 'ul.settings_schedule_groups_information' ) . within ( ( ) => {
114+ assertSelectedGroups ( selectedGroups , '.cds--link .content .expand' ) ;
115+ } ) ;
106116}
107117
108118describe ( 'Settings > Application Settings > Users' , ( ) => {
@@ -132,22 +142,22 @@ describe('Settings > Application Settings > Users', () => {
132142 } ) ;
133143
134144 // Click edit button
135- selectToolbarOption ( { option : 'Edit this User' } ) ;
145+ selectToolbarOption ( { option : EDIT_USER_CONFIG_OPTION } ) ;
136146
137147 // Check that fields are correctly disabled and contain the correct values
138148 cy . expect_explorer_title ( 'Administrator' ) ;
139149 cy . validateFormLabels ( [
140150 {
141151 [ LABEL_CONFIG_KEYS . FOR_VALUE ] : 'name' ,
142- [ LABEL_CONFIG_KEYS . EXPECTED_TEXT ] : 'Full Name' ,
152+ [ LABEL_CONFIG_KEYS . EXPECTED_TEXT ] : LABEL_FULL_NAME ,
143153 } ,
144154 {
145155 [ LABEL_CONFIG_KEYS . FOR_VALUE ] : 'userid' ,
146- [ LABEL_CONFIG_KEYS . EXPECTED_TEXT ] : 'Username' ,
156+ [ LABEL_CONFIG_KEYS . EXPECTED_TEXT ] : LABEL_USER_NAME ,
147157 } ,
148158 {
149159 [ LABEL_CONFIG_KEYS . FOR_VALUE ] : 'email' ,
150- [ LABEL_CONFIG_KEYS . EXPECTED_TEXT ] : 'E-mail Address' ,
160+ [ LABEL_CONFIG_KEYS . EXPECTED_TEXT ] : LABEL_EMAIL ,
151161 } ,
152162 ] ) ;
153163 cy . get ( '#downshift-0-label' ) . contains ( 'Available Groups' )
@@ -201,7 +211,7 @@ describe('Settings > Application Settings > Users', () => {
201211 USERS_ACCORDION_LABEL ,
202212 'Administrator' ,
203213 ] ) ;
204- selectToolbarOption ( { option : 'Edit this User' } ) ;
214+ selectToolbarOption ( { option : EDIT_USER_CONFIG_OPTION } ) ;
205215
206216 // Edit the email field since that is the only field that the Adminisistrator user can change not including the password field
207217 cy . getFormInputFieldByIdAndType ( { inputId : 'email' } ) . type ( TEST_EMAIL ) ;
@@ -226,7 +236,7 @@ describe('Settings > Application Settings > Users', () => {
226236 cy . contains ( getUserInfoElementSelector ( 4 , 'content_value' ) , TEST_EMAIL ) ;
227237
228238 // Reset email back to default value of empty
229- selectToolbarOption ( { option : 'Edit this User' } ) ;
239+ selectToolbarOption ( { option : EDIT_USER_CONFIG_OPTION } ) ;
230240 cy . getFormInputFieldByIdAndType ( { inputId : 'email' } ) . clear ( ) ;
231241 cy . interceptApi ( {
232242 alias : 'saveUserInfoApi' ,
@@ -255,7 +265,7 @@ describe('Settings > Application Settings > Users', () => {
255265 MANAGEIQ_REGION_ACCORDION_LABEL ,
256266 USERS_ACCORDION_LABEL ,
257267 ] ) ;
258- selectToolbarOption ( { option : 'Add a new User' } ) ;
268+ selectToolbarOption ( { option : ADD_USER_CONFIG_OPTION } ) ;
259269
260270 // Input values on the user form
261271 cy . getFormInputFieldByIdAndType ( { inputId : 'name' } ) . type (
@@ -274,11 +284,9 @@ describe('Settings > Application Settings > Users', () => {
274284 } ) . type ( TEST_PASS_WORD ) ;
275285 cy . getFormInputFieldByIdAndType ( { inputId : 'email' } ) . type ( TEST_EMAIL ) ;
276286 selectFromMultiSelect ( [ EVM_GROUP_ADMIN ] ) ;
277- assertSelectedGroups (
278- [ EVM_GROUP_ADMIN ] ,
279- '#selected-groups' ,
280- 'p.group-name'
281- ) ;
287+ cy . get ( '#selected-groups' ) . within ( ( ) => {
288+ assertSelectedGroups ( [ EVM_GROUP_ADMIN ] , 'p.group-name' ) ;
289+ } ) ;
282290 cy . interceptApi ( {
283291 alias : 'addUserApi' ,
284292 urlPattern : '/api/users' ,
@@ -327,7 +335,7 @@ describe('Settings > Application Settings > Users', () => {
327335 ] ) ;
328336
329337 // Click the edit user button
330- selectToolbarOption ( { option : 'Edit this User' } ) ;
338+ selectToolbarOption ( { option : EDIT_USER_CONFIG_OPTION } ) ;
331339
332340 // Edit the values on the user form
333341 cy . getFormInputFieldByIdAndType ( { inputId : 'name' } )
@@ -354,12 +362,12 @@ describe('Settings > Application Settings > Users', () => {
354362 EVM_GROUP_APPROVER ,
355363 EVM_GROUP_AUDITOR ,
356364 ] ) ;
357-
358- assertSelectedGroups (
365+ cy . get ( '#selected-groups' ) . within ( ( ) => {
366+ assertSelectedGroups (
359367 [ EVM_GROUP_APPROVER , EVM_GROUP_AUDITOR ] ,
360- '#selected-groups ' ,
361- 'p.group-name'
362- ) ;
368+ 'p.group-name ' ,
369+ ) ;
370+ } ) ;
363371 cy . interceptApi ( {
364372 alias : 'saveUserInfoApi' ,
365373 urlPattern : / \/ a p i \/ u s e r s \/ \d + $ / ,
@@ -400,7 +408,7 @@ describe('Settings > Application Settings > Users', () => {
400408 FULL_NAME_FOR_EDIT_TEST ,
401409 ] ) ;
402410
403- selectToolbarOption ( { option : 'Delete this User' } ) ;
411+ selectToolbarOption ( { option : DELETE_USER_CONFIG_OPTION } ) ;
404412 cy . expect_flash ( flashClassMap . success , 'delete' ) ;
405413
406414 // Verify that the user was deleted from the table
@@ -416,14 +424,14 @@ describe('Settings > Application Settings > Users', () => {
416424 MANAGEIQ_REGION_ACCORDION_LABEL ,
417425 USERS_ACCORDION_LABEL ,
418426 ] ) ;
419- selectToolbarOption ( { option : 'Add a new User' } ) ;
427+ selectToolbarOption ( { option : ADD_USER_CONFIG_OPTION } ) ;
420428
421429 // Input values on the user form
422430 cy . getFormInputFieldByIdAndType ( { inputId : 'name' } ) . type (
423- FULL_NAME_FOR_ADD_TEST
431+ FULL_NAME_FOR_ADD_TEST ,
424432 ) ;
425433 cy . getFormInputFieldByIdAndType ( { inputId : 'userid' } ) . type (
426- USERNAME_FOR_ADD_TEST
434+ USERNAME_FOR_ADD_TEST ,
427435 ) ;
428436 cy . getFormInputFieldByIdAndType ( {
429437 inputId : 'password' ,
@@ -435,11 +443,12 @@ describe('Settings > Application Settings > Users', () => {
435443 } ) . type ( TEST_PASS_WORD ) ;
436444 cy . getFormInputFieldByIdAndType ( { inputId : 'email' } ) . type ( TEST_EMAIL ) ;
437445 selectFromMultiSelect ( [ EVM_GROUP_ADMIN , EVM_GROUP_APPROVER ] ) ;
438- assertSelectedGroups (
439- [ EVM_GROUP_ADMIN , EVM_GROUP_APPROVER ] ,
440- '#selected-groups' ,
441- 'p.group-name'
442- ) ;
446+ cy . get ( '#selected-groups' ) . within ( ( ) => {
447+ assertSelectedGroups (
448+ [ EVM_GROUP_ADMIN , EVM_GROUP_APPROVER ] ,
449+ 'p.group-name' ,
450+ ) ;
451+ } ) ;
443452 cy . interceptApi ( {
444453 alias : 'addUserApi' ,
445454 urlPattern : '/api/users' ,
@@ -463,7 +472,7 @@ describe('Settings > Application Settings > Users', () => {
463472
464473 // Verify copy form was loaded with the correct values
465474 // Click copy user button
466- selectToolbarOption ( { option : 'Copy this User to a new User' } ) ;
475+ selectToolbarOption ( { option : COPY_USER_CONFIG_OPTION } ) ;
467476 cy . validateFormFields ( [
468477 {
469478 [ FIELD_CONFIG_KEYS . ID ] : 'name' ,
@@ -477,18 +486,19 @@ describe('Settings > Application Settings > Users', () => {
477486 } ,
478487 ] ) ;
479488 // Check the selected groups list initial selected values
480- assertSelectedGroups (
481- [ EVM_GROUP_ADMIN , EVM_GROUP_APPROVER ] ,
482- '#selected-groups' ,
483- 'p.group-name'
484- ) ;
489+ cy . get ( '#selected-groups' ) . within ( ( ) => {
490+ assertSelectedGroups (
491+ [ EVM_GROUP_ADMIN , EVM_GROUP_APPROVER ] ,
492+ 'p.group-name' ,
493+ ) ;
494+ } ) ;
485495
486496 // Input the new values on the copy user form
487497 cy . getFormInputFieldByIdAndType ( { inputId : 'name' } )
488498 . clear ( )
489499 . type ( FULL_NAME_FOR_COPY_TEST ) ;
490500 cy . getFormInputFieldByIdAndType ( { inputId : 'userid' } ) . type (
491- USERNAME_FOR_COPY_TEST
501+ USERNAME_FOR_COPY_TEST ,
492502 ) ;
493503 cy . getFormInputFieldByIdAndType ( {
494504 inputId : 'password' ,
@@ -502,12 +512,12 @@ describe('Settings > Application Settings > Users', () => {
502512 . clear ( )
503513 . type ( UPDATED_TEST_EMAIL ) ;
504514 // Admin group is already selected so unselect it and leave approver group selected
505- selectFromMultiSelect ( [ EVM_GROUP_ADMIN ] ) ;
506- assertSelectedGroups (
507- [ EVM_GROUP_APPROVER ] ,
508- '#selected-groups ',
509- 'p.group-name'
510- ) ;
515+ cy . get ( '#selected-groups' ) . within ( ( ) => {
516+ assertSelectedGroups (
517+ [ EVM_GROUP_ADMIN , EVM_GROUP_APPROVER ] ,
518+ 'p.group-name ',
519+ ) ;
520+ } ) ;
511521 cy . interceptApi ( {
512522 alias : 'addUserApi' ,
513523 urlPattern : '/api/users' ,
@@ -547,18 +557,18 @@ describe('Settings > Application Settings > Users', () => {
547557 fullName : FULL_NAME_FOR_COPY_TEST ,
548558 userName : USERNAME_FOR_COPY_TEST ,
549559 email : UPDATED_TEST_EMAIL ,
550- currentGroup : EVM_GROUP_APPROVER ,
551- role : EVM_ROLE_APPROVER ,
552- selectedGroups : [ EVM_GROUP_APPROVER ] ,
560+ currentGroup : EVM_GROUP_ADMIN ,
561+ role : EVM_ROLE_ADMIN ,
562+ selectedGroups : [ EVM_GROUP_ADMIN , EVM_GROUP_APPROVER ] ,
553563 } ) ;
554564
555565 // Click the delete user button for the copied user
556- selectToolbarOption ( { option : 'Delete this User' } ) ;
566+ selectToolbarOption ( { option : DELETE_USER_CONFIG_OPTION } ) ;
557567 cy . expect_flash ( flashClassMap . success , 'delete' ) ;
558568 // Verify that the user was deleted from the table
559569 cy . get ( '.miq-data-table table tbody tr' ) . should (
560570 'not.contain' ,
561- FULL_NAME_FOR_COPY_TEST
571+ FULL_NAME_FOR_COPY_TEST ,
562572 ) ;
563573
564574 cy . selectAccordionItem ( [
@@ -578,12 +588,12 @@ describe('Settings > Application Settings > Users', () => {
578588 } ) ;
579589
580590 // Click the delete user button for the new user
581- selectToolbarOption ( { option : 'Delete this User' } ) ;
591+ selectToolbarOption ( { option : DELETE_USER_CONFIG_OPTION } ) ;
582592 cy . expect_flash ( flashClassMap . success , 'delete' ) ;
583593 // Verify that the user was deleted from the table
584594 cy . get ( '.miq-data-table table tbody tr' ) . should (
585595 'not.contain' ,
586- FULL_NAME_FOR_ADD_TEST
596+ FULL_NAME_FOR_ADD_TEST ,
587597 ) ;
588598 } ) ;
589599
@@ -593,15 +603,13 @@ describe('Settings > Application Settings > Users', () => {
593603 MANAGEIQ_REGION_ACCORDION_LABEL ,
594604 USERS_ACCORDION_LABEL ,
595605 ] ) ;
596- selectToolbarOption ( { option : 'Add a new User' } ) ;
606+ selectToolbarOption ( { option : ADD_USER_CONFIG_OPTION } ) ;
597607
598608 // Input values on the user form
599609 selectFromMultiSelect ( [ EVM_GROUP_ADMIN ] ) ;
600- assertSelectedGroups (
601- [ EVM_GROUP_ADMIN ] ,
602- '#selected-groups' ,
603- 'p.group-name'
604- ) ;
610+ cy . get ( '#selected-groups' ) . within ( ( ) => {
611+ assertSelectedGroups ( [ EVM_GROUP_ADMIN ] , 'p.group-name' ) ;
612+ } ) ;
605613 cy . getFormInputFieldByIdAndType ( { inputId : 'userid' } ) . type (
606614 USERNAME_FOR_ADD_TEST
607615 ) ;
@@ -690,7 +698,7 @@ describe('Settings > Application Settings > Users', () => {
690698 ] ) ;
691699
692700 // Click the edit user button
693- selectToolbarOption ( { option : 'Edit this User' } ) ;
701+ selectToolbarOption ( { option : EDIT_USER_CONFIG_OPTION } ) ;
694702
695703 // Edit the name field and confirm submit & reset buttons are enabled
696704 cy . getFormInputFieldByIdAndType ( { inputId : 'name' } ) . type ( ' Edited' ) ;
@@ -798,7 +806,7 @@ describe('Settings > Application Settings > Users', () => {
798806 ] ) ;
799807
800808 // Click the edit user button
801- selectToolbarOption ( { option : 'Edit this User' } ) ;
809+ selectToolbarOption ( { option : EDIT_USER_CONFIG_OPTION } ) ;
802810
803811 // Enter new matching passwords and click the submit button
804812 cy . get ( '.cds--tooltip-trigger__wrapper > .cds--btn' ) . click ( ) ;
@@ -855,4 +863,4 @@ describe('Settings > Application Settings > Users', () => {
855863 cy . appDbState ( 'restore' ) ;
856864 } ) ;
857865 } ) ;
858- } ) ;
866+ } ) ;
0 commit comments