Skip to content

Commit 12bba36

Browse files
Merge pull request #2623 from RedisInsight/fe/feature/RI-4633_RI-4940
#RI-4633, #RI-4940 - add telemetry events
2 parents 43ab688 + cc96c44 commit 12bba36

File tree

4 files changed

+49
-10
lines changed

4 files changed

+49
-10
lines changed

redisinsight/ui/src/components/database-overview/components/MoreInfoPopover/MoreInfoPopover.spec.tsx

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
import React from 'react'
2-
import { fireEvent, render } from 'uiSrc/utils/test-utils'
2+
import { fireEvent, render, screen } from 'uiSrc/utils/test-utils'
3+
import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
34
import MoreInfoPopover from './MoreInfoPopover'
45

6+
jest.mock('uiSrc/telemetry', () => ({
7+
...jest.requireActual('uiSrc/telemetry'),
8+
sendEventTelemetry: jest.fn(),
9+
}))
10+
511
describe('MoreInfoPopover', () => {
612
it('should render', () => {
713
expect(render(<MoreInfoPopover metrics={[]} modules={[]} />)).toBeTruthy()
@@ -27,4 +33,23 @@ describe('MoreInfoPopover', () => {
2733

2834
expect(queryByTestId('overview-more-info-tooltip')).toBeInTheDocument()
2935
})
36+
37+
it('should call proper telemetry event after click on 3 dots', () => {
38+
const sendEventTelemetryMock = jest.fn()
39+
40+
sendEventTelemetry.mockImplementation(() => sendEventTelemetryMock)
41+
42+
render(<MoreInfoPopover metrics={[]} modules={[]} />)
43+
44+
fireEvent.click(screen.getByTestId('overview-more-info-button'))
45+
46+
expect(sendEventTelemetry).toBeCalledWith({
47+
event: TelemetryEvent.OVERVIEW_MENU_CLICKED,
48+
eventData: {
49+
databaseId: 'instanceId'
50+
}
51+
})
52+
53+
sendEventTelemetry.mockRestore()
54+
})
3055
})

redisinsight/ui/src/components/database-overview/components/MoreInfoPopover/MoreInfoPopover.tsx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ import React, { useState } from 'react'
22
import { EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiIcon, EuiLink, EuiLoadingSpinner, EuiPopover } from '@elastic/eui'
33
import cx from 'classnames'
44

5+
import { useParams } from 'react-router-dom'
56
import { DATABASE_LIST_MODULES_TEXT, OAuthSocialSource } from 'uiSrc/slices/interfaces'
67
import { getModule, truncateText } from 'uiSrc/utils'
78
import { OAuthSsoHandlerDialog } from 'uiSrc/components'
9+
import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
810
import { AdditionalRedisModule } from 'apiSrc/modules/database/models/additional.redis.module'
911

1012
import { IMetric } from '../OverviewMetrics'
@@ -19,11 +21,22 @@ export interface IProps {
1921

2022
const MoreInfoPopover = ({ metrics, modules }: IProps) => {
2123
const [isShowMoreInfoPopover, setIsShowMoreInfoPopover] = useState(false)
24+
const { instanceId = '' } = useParams<{ instanceId: string }>()
2225

2326
const onFreeDatabaseClick = () => {
2427
setIsShowMoreInfoPopover(false)
2528
}
2629

30+
const handleClickMoreInfo = () => {
31+
setIsShowMoreInfoPopover((isOpenPopover) => !isOpenPopover)
32+
sendEventTelemetry({
33+
event: TelemetryEvent.OVERVIEW_MENU_CLICKED,
34+
eventData: {
35+
databaseId: instanceId
36+
}
37+
})
38+
}
39+
2740
return (
2841
<EuiPopover
2942
ownFocus={false}
@@ -35,7 +48,7 @@ const MoreInfoPopover = ({ metrics, modules }: IProps) => {
3548
button={(
3649
<EuiButtonIcon
3750
iconType="boxesVertical"
38-
onClick={() => setIsShowMoreInfoPopover((isOpenPopover) => !isOpenPopover)}
51+
onClick={handleClickMoreInfo}
3952
aria-labelledby="more info"
4053
data-testid="overview-more-info-button"
4154
/>

redisinsight/ui/src/pages/browser/components/keys-header/KeysHeader.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,13 @@ const KeysHeader = (props: Props) => {
158158
}
159159

160160
const handleSwitchView = (type: KeyViewType) => {
161-
if (type === KeyViewType.Tree) {
162-
sendEventTelemetry({
163-
event: TelemetryEvent.TREE_VIEW_OPENED,
164-
eventData: {
165-
databaseId: instanceId
166-
}
167-
})
168-
}
161+
sendEventTelemetry({
162+
event: type === KeyViewType.Tree ? TelemetryEvent.TREE_VIEW_OPENED : TelemetryEvent.LIST_VIEW_OPENED,
163+
eventData: {
164+
databaseId: instanceId
165+
}
166+
})
167+
169168
dispatch(resetBrowserTree())
170169
dispatch(resetKeysData(searchMode))
171170
localStorageService.set(BrowserStorageItem.browserViewType, type)

redisinsight/ui/src/telemetry/events.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ export enum TelemetryEvent {
7676
BROWSER_DATABASE_INDEX_CHANGED = 'BROWSER_DATABASE_INDEX_CHANGED',
7777
BROWSER_FILTER_MODE_CHANGE_FAILED = 'BROWSER_FILTER_MODE_CHANGE_FAILED',
7878
BROWSER_TUTORIAL_CLICKED = 'BROWSER_TUTORIAL_CLICKED',
79+
LIST_VIEW_OPENED = 'LIST_VIEW_OPENED',
80+
OVERVIEW_MENU_CLICKED = 'OVERVIEW_MENU_CLICKED',
7981

8082
CLI_OPENED = 'CLI_OPENED',
8183
CLI_CLOSED = 'CLI_CLOSED',

0 commit comments

Comments
 (0)