diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/set-details/SetDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/set-details/SetDetails.tsx
index 69c5ffda38..0c240e09de 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/set-details/SetDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/set-details/SetDetails.tsx
@@ -11,6 +11,7 @@ import { KeyDetailsHeader, KeyDetailsHeaderProps } from 'uiSrc/pages/browser/mod
import { SetDetailsTable } from './set-details-table'
import { AddSetMembers } from './add-set-members'
import { AddItemsAction } from '../key-details-actions'
+import { KeyDetailsSubheader } from '../key-details-subheader/KeyDetailsSubheader'
export interface Props extends KeyDetailsHeaderProps {
onRemoveKey: () => void
@@ -47,6 +48,8 @@ const SetDetails = (props: Props) => {
+
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/stream-details/StreamDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/stream-details/StreamDetails.tsx
index f92ce58f95..b6207e1af3 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/stream-details/StreamDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/stream-details/StreamDetails.tsx
@@ -14,6 +14,7 @@ import { StreamDetailsBody } from './stream-details-body'
import AddStreamEntries from './add-stream-entity'
import AddStreamGroup from './add-stream-group'
import { StreamItemsAction } from '../key-details-actions'
+import { KeyDetailsSubheader } from '../key-details-subheader/KeyDetailsSubheader'
export interface Props extends KeyDetailsHeaderProps {
onRemoveKey: () => void
@@ -58,6 +59,8 @@ const StreamDetails = (props: Props) => {
+
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/string-details/StringDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/string-details/StringDetails.tsx
index 1832e7ca59..2e6c4d18b8 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/string-details/StringDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/string-details/StringDetails.tsx
@@ -23,6 +23,7 @@ import { resetStringValue, stringDataSelector, stringSelector } from 'uiSrc/slic
import { isFormatEditable, isFullStringLoaded } from 'uiSrc/utils'
import { StringDetailsValue } from './string-details-value'
import { EditItemAction } from '../key-details-actions'
+import { KeyDetailsSubheader } from '../key-details-subheader/KeyDetailsSubheader'
export interface Props extends KeyDetailsHeaderProps {}
@@ -70,8 +71,10 @@ const StringDetails = (props: Props) => {
+
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/zset-details/ZSetDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/zset-details/ZSetDetails.tsx
index cc70ef990d..f31ae79257 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/zset-details/ZSetDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/zset-details/ZSetDetails.tsx
@@ -11,6 +11,7 @@ import { KeyDetailsHeader, KeyDetailsHeaderProps } from 'uiSrc/pages/browser/mod
import { ZSetDetailsTable } from './zset-details-table'
import AddZsetMembers from './add-zset-members/AddZsetMembers'
import { AddItemsAction } from '../key-details-actions'
+import { KeyDetailsSubheader } from '../key-details-subheader/KeyDetailsSubheader'
export interface Props extends KeyDetailsHeaderProps {
onRemoveKey: () => void
@@ -48,6 +49,8 @@ const ZSetDetails = (props: Props) => {
+
diff --git a/redisinsight/ui/src/pages/rdi/statistics/components/vertical-divider/VerticalDivider.tsx b/redisinsight/ui/src/pages/rdi/statistics/components/vertical-divider/VerticalDivider.tsx
index 2dcc296be8..2c630fcd86 100644
--- a/redisinsight/ui/src/pages/rdi/statistics/components/vertical-divider/VerticalDivider.tsx
+++ b/redisinsight/ui/src/pages/rdi/statistics/components/vertical-divider/VerticalDivider.tsx
@@ -4,8 +4,8 @@ import Divider from 'uiSrc/components/divider/Divider'
import styles from './styles.module.scss'
-const VerticalDivider = () => (
-
+const VerticalDivider = (props: any) => (
+
)
export default VerticalDivider
diff --git a/redisinsight/ui/src/telemetry/events.ts b/redisinsight/ui/src/telemetry/events.ts
index 31a3c90858..b28760033c 100644
--- a/redisinsight/ui/src/telemetry/events.ts
+++ b/redisinsight/ui/src/telemetry/events.ts
@@ -169,6 +169,7 @@ export enum TelemetryEvent {
TREE_VIEW_KEY_FIELD_VALUE_COLLAPSED = 'TREE_VIEW_KEY_FIELD_VALUE_COLLAPSED',
TREE_VIEW_KEY_DETAILS_FORMATTER_CHANGED = 'TREE_VIEW_KEY_DETAILS_FORMATTER_CHANGED',
TREE_VIEW_WORKBENCH_LINK_CLICKED = 'TREE_VIEW_WORKBENCH_LINK_CLICKED',
+ SHOW_HASH_TTL_CLICKED = 'SHOW_HASH_TTL_CLICKED',
SLOWLOG_LOADED = 'SLOWLOG_LOADED',
SLOWLOG_CLEARED = 'SLOWLOG_CLEARED',
diff --git a/tests/e2e/pageObjects/browser-page.ts b/tests/e2e/pageObjects/browser-page.ts
index 2dab013eb3..3b9d061cca 100644
--- a/tests/e2e/pageObjects/browser-page.ts
+++ b/tests/e2e/pageObjects/browser-page.ts
@@ -271,6 +271,8 @@ export class BrowserPage extends InstancePage {
//Get Hash key field ttl value
//for Redis databases 7.4 and higher
getHashTtlFieldInput = (fieldName: string): Selector => (Selector(`[data-testid=hash-ttl_content-value-${fieldName}]`));
+ //checkbox
+ showTtlCheckbox = Selector('[data-testid=test-check-ttl]~label');
/**
* Common part for Add any new key
diff --git a/tests/e2e/tests/web/smoke/browser/verify-key-details.e2e.ts b/tests/e2e/tests/web/smoke/browser/verify-key-details.e2e.ts
index d1fde3dceb..ee75bb969b 100644
--- a/tests/e2e/tests/web/smoke/browser/verify-key-details.e2e.ts
+++ b/tests/e2e/tests/web/smoke/browser/verify-key-details.e2e.ts
@@ -1,7 +1,7 @@
import { rte } from '../../../../helpers/constants';
import { DatabaseHelper } from '../../../../helpers/database';
import { BrowserPage } from '../../../../pageObjects';
-import { commonUrl, ossStandaloneConfig } from '../../../../helpers/conf';
+import { commonUrl, ossStandaloneConfig, ossStandaloneV7Config } from '../../../../helpers/conf';
import { Common } from '../../../../helpers/common';
import { DatabaseAPIRequests } from '../../../../helpers/api/api-database';
import { APIKeyRequests } from '../../../../helpers/api/api-keys';
@@ -119,17 +119,16 @@ test('Verify that user can see JSON Key details', async t => {
await t.expect(keyTTLValue).match(expectedTTL, 'The JSON Key TTL is incorrect');
await t.expect(keyBadge).contains('JSON', 'The JSON Key Badge is incorrect');
});
-//the test is skipped until redis databases 7.4 is not added to docker
+
test
.before(async() => {
- // await databaseHelper.acceptLicenseTermsAndAddDatabaseApi();
+ await databaseHelper.acceptLicenseTermsAndAddDatabaseApi(ossStandaloneV7Config);
})
.after(async() => {
// Clear and delete database
- // await apiKeyRequests.deleteKeyByNameApi(keyName, );
- // await databaseAPIRequests.deleteStandaloneDatabaseApi();
- })
- .skip('Verify that user can set ttl for Hash fields', async t => {
+ await apiKeyRequests.deleteKeyByNameApi(keyName, ossStandaloneV7Config.databaseName);
+ await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneV7Config);
+ })('Verify that user can set ttl for Hash fields', async t => {
keyName = Common.generateWord(10);
const keyName2 = Common.generateWord(10);
const field1 = 'Field1WithTtl';
@@ -150,6 +149,11 @@ test
ttlFieldValue = await browserPage.getHashTtlFieldInput(field2).textContent;
await t.expect(ttlFieldValue).match(expectedTTL, 'the field ttl is not set');
+ //verify that ttl column can be hidden
+ await t.click(browserPage.showTtlCheckbox);
+ await t.expect(await browserPage.getHashTtlFieldInput(field2).exists).notOk('the ttl column is not hidden');
+ await t.click(browserPage.showTtlCheckbox);
+
//verify that field is removed after ttl field is expired
await browserPage.editHashFieldTtlValue(field1, '1');
await t.wait(1000);
@@ -160,6 +164,7 @@ test
//verify that the key is removed if key has 1 field and ttl field is expired
await browserPage.addHashKey(keyName2, ' ', field1);
await browserPage.editHashFieldTtlValue(field1, '1');
+ await t.wait(1000);
await t.click(browserPage.refreshKeysButton);
await t.expect(browserPage.getKeySelectorByName(keyName2).exists).notOk('key is not removed when the field ttl is expired');