Skip to content

Commit df6c227

Browse files
authored
Merge pull request #1633 from RedisInsight/fe/feature/RI-4021_Telemetry
#RI-4021 - Update telemetry WORKBENCH_COMMAND_COPY event
2 parents de10991 + 752657a commit df6c227

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

redisinsight/ui/src/components/query-card/QueryCardHeader/QueryCardHeader.spec.tsx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { cloneDeep } from 'lodash'
22
import React from 'react'
33
import { instance, mock } from 'ts-mockito'
44
import { cleanup, mockedStore, render, fireEvent, act, screen, waitForEuiToolTipVisible } from 'uiSrc/utils/test-utils'
5+
import { TelemetryEvent, sendEventTelemetry } from 'uiSrc/telemetry'
6+
import { INSTANCE_ID_MOCK } from 'uiSrc/mocks/handlers/instances/instancesHandlers'
57
import QueryCardHeader, { Props } from './QueryCardHeader'
68

79
const mockedProps = mock<Props>()
@@ -28,6 +30,11 @@ jest.mock('uiSrc/slices/app/plugins', () => ({
2830
}),
2931
}))
3032

33+
jest.mock('uiSrc/telemetry', () => ({
34+
...jest.requireActual('uiSrc/telemetry'),
35+
sendEventTelemetry: jest.fn(),
36+
}))
37+
3138
describe('QueryCardHeader', () => {
3239
it('should render', () => {
3340
// connectedInstanceSelector.mockImplementation(() => ({
@@ -57,4 +64,25 @@ describe('QueryCardHeader', () => {
5764

5865
expect(screen.getByTestId('copy-command')).toBeDisabled()
5966
})
67+
68+
it('should render disabled copy button', async () => {
69+
const command = 'info'
70+
const sendEventTelemetryMock = jest.fn();
71+
(sendEventTelemetry as jest.Mock).mockImplementation(() => sendEventTelemetryMock)
72+
render(<QueryCardHeader {...instance(mockedProps)} query={command} />)
73+
74+
await act(async () => {
75+
fireEvent.click(screen.getByTestId('copy-command'))
76+
})
77+
78+
expect(sendEventTelemetry).toBeCalledWith({
79+
event: TelemetryEvent.WORKBENCH_COMMAND_COPIED,
80+
eventData: {
81+
command,
82+
databaseId: INSTANCE_ID_MOCK,
83+
}
84+
});
85+
86+
(sendEventTelemetry as jest.Mock).mockRestore()
87+
})
6088
})

redisinsight/ui/src/components/query-card/QueryCardHeader/QueryCardHeader.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,6 @@ const QueryCardHeader = (props: Props) => {
129129
eventData: {
130130
databaseId: instanceId,
131131
command: getCommandNameFromQuery(query, COMMANDS_SPEC),
132-
rawMode: isRawMode(activeMode),
133-
group: isGroupMode(activeResultsMode),
134132
...additionalData
135133
}
136134
})
@@ -139,7 +137,7 @@ const QueryCardHeader = (props: Props) => {
139137
const handleCopy = (event: React.MouseEvent, query: string) => {
140138
sendEvent(TelemetryEvent.WORKBENCH_COMMAND_COPIED, query)
141139
eventStop(event)
142-
navigator.clipboard.writeText(query)
140+
navigator.clipboard?.writeText?.(query)
143141
}
144142

145143
const onDropDownViewClick = (event: React.MouseEvent) => {
@@ -156,6 +154,8 @@ const QueryCardHeader = (props: Props) => {
156154
TelemetryEvent.WORKBENCH_RESULT_VIEW_CHANGED,
157155
query,
158156
{
157+
rawMode: isRawMode(activeMode),
158+
group: isGroupMode(activeResultsMode),
159159
previousView: previousView.name,
160160
isPreviousViewInternal: !!previousView?.internal,
161161
currentView: currentView.name,

0 commit comments

Comments
 (0)