Skip to content

Commit aee0911

Browse files
#RI-4909 - add library from functions tab
1 parent 58081fe commit aee0911

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,4 +171,26 @@ 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+
}
194+
})
195+
})
174196
})

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

Lines changed: 34 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,12 @@ 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+
}
121+
})
108122
history.push(Pages.triggeredFunctionsLibraries(instanceId))
109123
}
110124

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

0 commit comments

Comments
 (0)