Skip to content

Commit 736ef03

Browse files
authored
Merge pull request #2563 from RedisInsight/fe/feature/RI-4909_add_library_btn
#RI-4909 - add library from functions tab
2 parents 23cae46 + 2894f3f commit 736ef03

File tree

4 files changed

+60
-1
lines changed

4 files changed

+60
-1
lines changed

redisinsight/ui/src/pages/triggeredFunctions/pages/Functions/FunctionsPage.spec.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,4 +171,27 @@ describe('FunctionsPage', () => {
171171

172172
expect(queryByTestId('total-functions')).not.toBeInTheDocument()
173173
})
174+
175+
it('should open library add form and sent proper telemetry event', () => {
176+
const sendEventTelemetryMock = jest.fn()
177+
const pushMock = jest.fn()
178+
reactRouterDom.useHistory = jest.fn().mockReturnValue({ push: pushMock })
179+
180+
sendEventTelemetry.mockImplementation(() => sendEventTelemetryMock)
181+
182+
render(<FunctionsPage />)
183+
184+
fireEvent.click(screen.getByTestId('btn-add-library'))
185+
186+
expect(pushMock)
187+
.toBeCalledWith(Pages.triggeredFunctionsLibraries('instanceId'))
188+
189+
expect(sendEventTelemetry).toBeCalledWith({
190+
event: TelemetryEvent.TRIGGERS_AND_FUNCTIONS_LOAD_LIBRARY_CLICKED,
191+
eventData: {
192+
databaseId: 'instanceId',
193+
tab: 'functions',
194+
}
195+
})
196+
})
174197
})

redisinsight/ui/src/pages/triggeredFunctions/pages/Functions/FunctionsPage.tsx

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
import React, { useEffect, useState } from 'react'
2-
import { EuiFieldSearch, EuiFlexGroup, EuiFlexItem, EuiLoadingSpinner, EuiResizableContainer, } from '@elastic/eui'
2+
import {
3+
EuiFieldSearch,
4+
EuiFlexGroup,
5+
EuiFlexItem,
6+
EuiLoadingSpinner,
7+
EuiResizableContainer,
8+
EuiToolTip,
9+
EuiButton,
10+
} from '@elastic/eui'
311
import { useDispatch, useSelector } from 'react-redux'
412
import { useHistory } from 'react-router-dom'
513
import cx from 'classnames'
@@ -105,6 +113,13 @@ const FunctionsPage = () => {
105113

106114
const onAddLibrary = () => {
107115
dispatch(setAddLibraryFormOpen(true))
116+
sendEventTelemetry({
117+
event: TelemetryEvent.TRIGGERS_AND_FUNCTIONS_LOAD_LIBRARY_CLICKED,
118+
eventData: {
119+
databaseId: instanceId,
120+
tab: 'functions',
121+
}
122+
})
108123
history.push(Pages.triggeredFunctionsLibraries(instanceId))
109124
}
110125

@@ -143,6 +158,25 @@ const FunctionsPage = () => {
143158
data-testid="search-functions-list"
144159
/>
145160
</EuiFlexItem>
161+
<EuiFlexItem grow={false}>
162+
<EuiToolTip
163+
position="bottom"
164+
anchorClassName="euiToolTip__btn-disabled"
165+
content={isModuleLoaded ? null : 'Triggered Functions is not loaded in current database'}
166+
>
167+
<EuiButton
168+
fill
169+
size="s"
170+
color="secondary"
171+
onClick={onAddLibrary}
172+
disabled={!isModuleLoaded}
173+
className={styles.addLibrary}
174+
data-testid="btn-add-library"
175+
>
176+
+ Library
177+
</EuiButton>
178+
</EuiToolTip>
179+
</EuiFlexItem>
146180
</EuiFlexGroup>
147181
</EuiFlexItem>
148182
<EuiFlexItem className="triggeredFunctions__content">

redisinsight/ui/src/pages/triggeredFunctions/pages/Libraries/LibrariesPage.spec.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ describe('LibrariesPage', () => {
163163
event: TelemetryEvent.TRIGGERS_AND_FUNCTIONS_LOAD_LIBRARY_CLICKED,
164164
eventData: {
165165
databaseId: 'instanceId',
166+
tab: 'libraries',
166167
}
167168
})
168169
})

redisinsight/ui/src/pages/triggeredFunctions/pages/Libraries/LibrariesPage.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ const LibrariesPage = () => {
135135
event: TelemetryEvent.TRIGGERS_AND_FUNCTIONS_LOAD_LIBRARY_CLICKED,
136136
eventData: {
137137
databaseId: instanceId,
138+
tab: 'libraries',
138139
}
139140
})
140141
}

0 commit comments

Comments
 (0)