1
1
import { t , Selector } from 'testcafe' ;
2
2
import { Common } from '../helpers/common' ;
3
3
import { InstancePage } from './instance-page' ;
4
- import { BulkActions } from './components/browser' ;
4
+ import { BulkActions , TreeView } from './components/browser' ;
5
5
6
6
export class BrowserPage extends InstancePage {
7
7
BulkActions = new BulkActions ( ) ;
8
+ TreeView = new TreeView ( ) ;
8
9
9
10
//CSS Selectors
10
11
cssSelectorGrid = '[aria-label="grid"]' ;
@@ -71,13 +72,9 @@ export class BrowserPage extends InstancePage {
71
72
databaseInfoIcon = Selector ( '[data-testid=db-info-icon]' ) ;
72
73
treeViewButton = Selector ( '[data-testid=view-type-list-btn]' ) ;
73
74
browserViewButton = Selector ( '[data-testid=view-type-browser-btn]' ) ;
74
- treeViewSeparator = Selector ( '[data-testid=tree-view-delimiter-btn]' ) ;
75
75
searchButton = Selector ( '[data-testid=search-btn]' ) ;
76
76
clearFilterButton = Selector ( '[data-testid=reset-filter-btn]' ) ;
77
77
clearSelectionButton = Selector ( '[data-testid=clear-selection-btn]' ) ;
78
- treeViewDelimiterButton = Selector ( '[data-testid=tree-view-delimiter-btn]' ) ;
79
- treeViewDelimiterValueSave = Selector ( '[data-testid=apply-btn]' ) ;
80
- treeViewDelimiterValueCancel = Selector ( '[data-testid=cancel-btn]' ) ;
81
78
fullScreenModeButton = Selector ( '[data-testid=toggle-full-screen]' ) ;
82
79
closeRightPanel = Selector ( '[data-testid=close-right-panel-btn]' ) ;
83
80
addNewStreamEntry = Selector ( '[data-testid=add-key-value-items-btn]' ) ;
@@ -177,7 +174,6 @@ export class BrowserPage extends InstancePage {
177
174
jsonKeyInput = Selector ( '[data-testid=json-key]' ) ;
178
175
jsonValueInput = Selector ( '[data-testid=json-value]' ) ;
179
176
countInput = Selector ( '[data-testid=count-input]' ) ;
180
- treeViewDelimiterInput = Selector ( '[data-testid=tree-view-delimiter-input]' ) ;
181
177
streamEntryId = Selector ( '[data-testid=entryId]' ) ;
182
178
streamField = Selector ( '[data-testid=field-name]' ) ;
183
179
streamValue = Selector ( '[data-testid=field-value]' ) ;
@@ -211,28 +207,19 @@ export class BrowserPage extends InstancePage {
211
207
jsonKeyValue = Selector ( '[data-testid=json-data]' ) ;
212
208
jsonError = Selector ( '[data-testid=edit-json-error]' ) ;
213
209
tooltip = Selector ( '[role=tooltip]' ) ;
214
- noResultsFound = Selector ( '[data-test-subj =no-result-found]' ) ;
210
+ noResultsFound = Selector ( '[data-testid =no-result-found-only ]' ) ;
215
211
searchAdvices = Selector ( '[data-test-subj=search-advices]' ) ;
216
212
keysNumberOfResults = Selector ( '[data-testid=keys-number-of-results]' ) ;
217
213
keysTotalNumber = Selector ( '[data-testid=keys-total]' ) ;
218
214
overviewConnectedClients = Selector ( '[data-test-subj=overview-connected-clients]' ) ;
219
215
overviewCommandsSec = Selector ( '[data-test-subj=overview-commands-sec]' ) ;
220
216
overviewCpu = Selector ( '[data-test-subj=overview-cpu]' ) ;
221
- treeViewArea = Selector ( '[data-test-subj=tree-view-panel]' ) ;
222
217
scannedValue = Selector ( '[data-testid=keys-number-of-scanned]' ) ;
223
- treeViewKeysNumber = Selector ( '[data-testid^=count_]' ) ;
224
- treeViewPercentage = Selector ( '[data-testid^=percentage_]' ) ;
225
- treeViewFolders = Selector ( '[data-test-subj^=node-arrow-icon_]' ) ;
226
218
totalKeysNumber = Selector ( '[data-testid=keys-total]' ) ;
227
219
databaseInfoToolTip = Selector ( '[data-testid=db-info-tooltip]' ) ;
228
- treeViewDeviceFolder = Selector ( '[data-testid^=node-item_device] div' ) ;
229
- treeViewDeviceKyesCount = Selector ( '[data-testid^=count_device] span' ) ;
230
220
ttlValueInKeysTable = Selector ( '[data-testid^=ttl-]' ) ;
231
221
stringKeyValue = Selector ( '.key-details-body pre' ) ;
232
222
keyDetailsBadge = Selector ( '.key-details-header .euiBadge__text' ) ;
233
- treeViewKeysItem = Selector ( '[data-testid*="keys:keys:"]' ) ;
234
- treeViewNotPatternedKeys = Selector ( '[data-testid*="node-item_keys"]' ) ;
235
- treeViewNodeArrowIcon = Selector ( '[data-test-subj^=node-arrow-icon_]' ) ;
236
223
modulesTypeDetails = Selector ( '[data-testid=modules-type-details]' ) ;
237
224
filteringLabel = Selector ( '[data-testid^=badge-]' ) ;
238
225
keysSummary = Selector ( '[data-testid=keys-summary]' ) ;
@@ -590,6 +577,7 @@ export class BrowserPage extends InstancePage {
590
577
591
578
/**
592
579
* Delete Key By name after Hovering
580
+ * @param keyName The name of the key
593
581
*/
594
582
async deleteKeyByNameFromList ( keyName : string ) : Promise < void > {
595
583
await this . searchByKeyName ( keyName ) ;
@@ -766,7 +754,10 @@ export class BrowserPage extends InstancePage {
766
754
. click ( this . saveMemberButton ) ;
767
755
}
768
756
769
- //Open key details
757
+ /**
758
+ * Open key details with search
759
+ * @param keyName The name of the key
760
+ */
770
761
async openKeyDetails ( keyName : string ) : Promise < void > {
771
762
await this . searchByKeyName ( keyName ) ;
772
763
await t . click ( this . keyNameInTheList ) ;
@@ -878,66 +869,6 @@ export class BrowserPage extends InstancePage {
878
869
await t . typeText ( this . jsonValueInput , jsonStructure , { replace : true , paste : true } ) ;
879
870
await t . click ( this . applyEditButton ) ;
880
871
}
881
- /**
882
- * Check tree view structure
883
- * @folders name of folders for tree view build
884
- * @delimiter string with delimiter value
885
- * @commonKeyFolder flag if not patterned keys will be displayed
886
- */
887
- async checkTreeViewFoldersStructure ( folders : string [ ] [ ] , delimiter : string , commonKeyFolder : boolean ) : Promise < void > {
888
- // Verify that all keys that are not inside of tree view doesn't contain delimiter
889
- if ( commonKeyFolder ) {
890
- await t
891
- . expect ( this . treeViewNotPatternedKeys . exists ) . ok ( 'Folder with not patterned keys' )
892
- . click ( this . treeViewNotPatternedKeys ) ;
893
- const notPatternedKeys = Selector ( '[data-test-subj=key-list-panel]' ) . find ( this . cssSelectorKey ) ;
894
- const notPatternedKeysNumber = await notPatternedKeys . count ;
895
- for ( let i = 0 ; i < notPatternedKeysNumber ; i ++ ) {
896
- await t . expect ( notPatternedKeys . nth ( i ) . withText ( delimiter ) . exists ) . notOk ( 'Not contained delimiter keys' ) ;
897
- }
898
- }
899
- // Verify that every level of tree view is clickable
900
- const foldersNumber = folders . length ;
901
- for ( let i = 0 ; i < foldersNumber ; i ++ ) {
902
- const innerFoldersNumber = folders [ i ] . length ;
903
- const array : string [ ] = [ ] ;
904
- for ( let j = 0 ; j < innerFoldersNumber ; j ++ ) {
905
- if ( j === 0 ) {
906
- const folderSelector = `[data-testid="node-item_${ folders [ i ] [ j ] } ${ delimiter } "]` ;
907
- array . push ( folderSelector ) ;
908
- await t . click ( Selector ( folderSelector ) ) ;
909
- }
910
- else {
911
- const lastSelector = array [ array . length - 1 ] . substring ( 0 , array [ array . length - 1 ] . length - 2 ) ;
912
- const folderSelector = `${ lastSelector } ${ folders [ i ] [ j ] } ${ delimiter } "]` ;
913
- array . push ( folderSelector ) ;
914
- await t . click ( Selector ( folderSelector ) ) ;
915
- }
916
- }
917
- // Verify that the last folder level contains required keys
918
- const lastSelector = array [ array . length - 1 ] . substring ( 0 , array [ array . length - 1 ] . length - 2 ) ;
919
- const folderSelector = `${ lastSelector } keys${ delimiter } keys${ delimiter } "]` ;
920
- await t . click ( Selector ( folderSelector ) ) ;
921
- const foundKeyName = `${ folders [ i ] . join ( delimiter ) } ` ;
922
- await t
923
- . expect ( Selector ( `[data-testid*="key-${ foundKeyName } "]` ) . exists ) . ok ( 'Specific key not found' )
924
- . click ( array [ 0 ] ) ;
925
- }
926
- }
927
-
928
- /**
929
- * Change delimiter value
930
- * @delimiter string with delimiter value
931
- */
932
- async changeDelimiterInTreeView ( delimiter : string ) : Promise < void > {
933
- // Open delimiter popup
934
- await t . click ( this . treeViewDelimiterButton ) ;
935
- // Apply new value to the field
936
- await t . typeText ( this . treeViewDelimiterInput , delimiter , { replace : true , paste : true } ) ;
937
- // Click on save button
938
- await t . click ( this . treeViewDelimiterValueSave ) ;
939
- await t . expect ( this . treeViewDelimiterButton . withExactText ( delimiter ) . exists ) . ok ( 'Delimiter is not changed' ) ;
940
- }
941
872
942
873
//Delete entry from Stream key
943
874
async deleteStreamEntry ( ) : Promise < void > {
@@ -1019,33 +950,6 @@ export class BrowserPage extends InstancePage {
1019
950
. click ( option ) ;
1020
951
}
1021
952
1022
- /**
1023
- * Get text from first tree element
1024
- */
1025
- async getTextFromNthTreeElement ( number : number ) : Promise < string > {
1026
- return ( await Selector ( '[role="treeitem"]' ) . nth ( number ) . find ( 'div' ) . textContent ) . replace ( / \s / g, '' ) ;
1027
- }
1028
-
1029
- /**
1030
- * Open tree folder with multiple level
1031
- * @param names folder names with sequence of subfolder
1032
- */
1033
- async openTreeFolders ( names : string [ ] ) : Promise < void > {
1034
- let base = `node-item_${ names [ 0 ] } :` ;
1035
- await t . click ( Selector ( `[data-testid="${ base } "]` ) ) ;
1036
- if ( names . length > 1 ) {
1037
- for ( let i = 1 ; i < names . length ; i ++ ) {
1038
- base = `${ base } ${ names [ i ] } :` ;
1039
- await t . click ( Selector ( `[data-testid="${ base } "]` ) ) ;
1040
- }
1041
- }
1042
- await t . click ( Selector ( `[data-testid="${ base } keys:keys:"]` ) ) ;
1043
-
1044
- await t . expect (
1045
- Selector ( `[data-testid="${ base } keys:keys:"]` ) . visible )
1046
- . ok ( 'Folder is not selected' ) ;
1047
- }
1048
-
1049
953
/**
1050
954
* Verify that database has no keys
1051
955
*/
@@ -1061,6 +965,10 @@ export class BrowserPage extends InstancePage {
1061
965
await t . click ( this . clearFilterButton ) ;
1062
966
}
1063
967
968
+ /**
969
+ * Open Guide link by name
970
+ * @param guide The guide name
971
+ */
1064
972
async clickGuideLinksByName ( guide : string ) : Promise < void > {
1065
973
const linkGuide = Selector ( `[data-testid="guide-button-${ guide } "]` ) ;
1066
974
await t . click ( linkGuide ) ;
0 commit comments