Skip to content

Commit 8a17c0d

Browse files
authored
Merge pull request #2871 from RedisInsight/fe/bugfix/RI-5258-key-type
#RI-5258 - fix key type for tree view
2 parents c23a86d + 0b027e5 commit 8a17c0d

File tree

2 files changed

+28
-13
lines changed

2 files changed

+28
-13
lines changed

redisinsight/ui/src/pages/browser/components/virtual-tree/VirtualTree.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,17 +136,18 @@ const VirtualTree = (props: Props) => {
136136
}), [])
137137

138138
const getMetadata = useCallback((
139-
itemsInit: any[] = []
139+
itemsInit: any[] = [],
140+
filter: Nullable<KeyTypes>
140141
): void => {
141142
dispatch(fetchKeysMetadataTree(
142143
itemsInit,
143-
commonFilterType,
144+
filter,
144145
controller.current?.signal,
145146
(loadedItems) =>
146147
onSuccessFetchedMetadata(loadedItems),
147148
() => { rerender({}) }
148149
))
149-
}, [commonFilterType])
150+
}, [])
150151

151152
const onSuccessFetchedMetadata = (
152153
loadedItems: any[],
@@ -158,18 +159,18 @@ const VirtualTree = (props: Props) => {
158159
rerender({})
159160
}
160161

161-
const getMetadataDebounced = debounce(() => {
162+
const getMetadataDebounced = debounce((filter: Nullable<KeyTypes>) => {
162163
const entries = Object.entries(elements.current)
163164

164-
getMetadata(entries)
165+
getMetadata(entries, filter)
165166

166167
elements.current = {}
167168
}, 100)
168169

169170
const getMetadataNode = useCallback((nameBuffer: any, path: string) => {
170171
elements.current[path] = nameBuffer
171-
getMetadataDebounced()
172-
}, [])
172+
getMetadataDebounced(commonFilterType)
173+
}, [commonFilterType])
173174

174175
// This helper function constructs the object that will be sent back at the step
175176
// [2] during the treeWalker function work. Except for the mandatory `data`

tests/e2e/tests/web/critical-path/browser/filtering.e2e.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { BrowserPage } from '../../../../pageObjects';
33
import {
44
commonUrl,
55
ossStandaloneBigConfig,
6-
ossStandaloneConfig
6+
ossStandaloneConfigEmpty
77
} from '../../../../helpers/conf';
88
import { keyLength, KeyTypesTexts, rte } from '../../../../helpers/constants';
99
import { addKeysViaCli, deleteKeysViaCli, keyTypes } from '../../../../helpers/keys';
@@ -24,17 +24,17 @@ fixture `Filtering per key name in Browser page`
2424
.meta({ type: 'critical_path', rte: rte.standalone })
2525
.page(commonUrl)
2626
.beforeEach(async() => {
27-
await databaseHelper.acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig);
27+
await databaseHelper.acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfigEmpty);
2828
})
2929
.afterEach(async() => {
3030
// Delete database
31-
await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneConfig);
31+
await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneConfigEmpty);
3232
});
3333
test
3434
.after(async() => {
3535
// Clear and delete database
36-
await apiKeyRequests.deleteKeyByNameApi(keyName, ossStandaloneConfig.databaseName);
37-
await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneConfig);
36+
await apiKeyRequests.deleteKeyByNameApi(keyName, ossStandaloneConfigEmpty.databaseName);
37+
await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneConfigEmpty);
3838
})('Verify that user can search a key with selected data type is filters', async t => {
3939
keyName = Common.generateWord(10);
4040
// Add new key
@@ -62,14 +62,28 @@ test
6262
.after(async() => {
6363
// Clear keys and database
6464
await deleteKeysViaCli(keysData);
65-
await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneConfig);
65+
await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneConfigEmpty);
6666
})('Verify that user can filter keys per data type in Browser page', async t => {
6767
keyName = Common.generateWord(10);
6868
// Create new keys
6969
await addKeysViaCli(keysData);
7070
for (const { textType, keyName } of keysData) {
7171
await browserPage.selectFilterGroupType(textType);
7272
await t.expect(await browserPage.isKeyIsDisplayedInTheList(keyName)).ok(`The key of type ${textType} was found`);
73+
textType !== KeyTypesTexts.Graph
74+
? await t.expect(browserPage.filteringLabel.textContent).contains(textType, 'Keys not filtered by key type')
75+
: await t.expect(browserPage.filteringLabel.textContent).contains('graphdata', 'Keys not filtered by key type')
76+
const regExp = new RegExp('[1-9]');
77+
await t.expect(browserPage.keysNumberOfResults.textContent).match(regExp, 'Number of found keys');
78+
}
79+
// Check for tree view
80+
await t.click(browserPage.treeViewButton);
81+
for (const { textType, keyName } of keysData) {
82+
await browserPage.selectFilterGroupType(textType);
83+
await t.expect(await browserPage.isKeyIsDisplayedInTheList(keyName)).ok(`The key of type ${textType} was found`);
84+
textType !== KeyTypesTexts.Graph
85+
? await t.expect(browserPage.filteringLabel.textContent).contains(textType, 'Keys not filtered by key type')
86+
: await t.expect(browserPage.filteringLabel.textContent).contains('graphdata', 'Keys not filtered by key type')
7387
const regExp = new RegExp('[1-9]');
7488
await t.expect(browserPage.keysNumberOfResults.textContent).match(regExp, 'Number of found keys');
7589
}

0 commit comments

Comments
 (0)