Skip to content

Commit c60d7ca

Browse files
committed
* #RI-5798 - [Regression] 401 error from WS is not handled
* #RI-5799 - [Regression] Incorrect text for database chatbot
1 parent 5c6bf80 commit c60d7ca

File tree

3 files changed

+44
-5
lines changed

3 files changed

+44
-5
lines changed

redisinsight/ui/src/components/global-subscriptions/CommonAppSubscription/CommonAppSubscription.spec.tsx

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ import { setNewNotificationReceived, setLastReceivedNotification } from 'uiSrc/s
88
import { setIsConnected } from 'uiSrc/slices/app/socket-connection'
99
import { NotificationType } from 'uiSrc/slices/interfaces'
1010
import { cleanup, mockedStore, render } from 'uiSrc/utils/test-utils'
11-
import { SocketEvent } from 'uiSrc/constants'
11+
import { CloudJobEvents, SocketEvent } from 'uiSrc/constants'
1212
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
1313
import { RecommendationsSocketEvents } from 'uiSrc/constants/recommendations'
1414
import { addUnreadRecommendations } from 'uiSrc/slices/recommendations/recommendations'
15+
import { logoutUser } from 'uiSrc/slices/oauth/cloud'
1516
import { NotificationsDto } from 'apiSrc/modules/notification/dto'
1617

18+
import { CloudJobInfo } from 'apiSrc/modules/cloud/job/models'
1719
import CommonAppSubscription from './CommonAppSubscription'
1820

1921
let store: typeof mockedStore
@@ -108,4 +110,34 @@ describe('CommonAppSubscription', () => {
108110

109111
unmount()
110112
})
113+
114+
it('should logout if cloud:job:monitor return statusCode=401', () => {
115+
const { unmount } = render(<CommonAppSubscription />)
116+
117+
const mockData: CloudJobInfo = {
118+
id: '4d76ba0c-71d3-4c9c-ada5-a6e5f4102af5',
119+
name: 'CREATE_FREE_SUBSCRIPTION_AND_DATABASE',
120+
status: 'failed',
121+
error: {
122+
message: 'Authorization failed',
123+
statusCode: 401,
124+
error: 'CloudApiUnauthorized',
125+
errorCode: 11001
126+
},
127+
step: 'subscription'
128+
}
129+
130+
socket.on(CloudJobEvents.Monitor, (data: CloudJobInfo) => {
131+
expect(data).toEqual(mockData)
132+
})
133+
134+
socket.socketClient.emit(CloudJobEvents.Monitor, mockData)
135+
136+
const afterRenderActions = [
137+
logoutUser(),
138+
]
139+
expect(store.getActions()).toEqual([...afterRenderActions])
140+
141+
unmount()
142+
})
111143
})

redisinsight/ui/src/components/global-subscriptions/CommonAppSubscription/CommonAppSubscription.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { useEffect, useRef, useState } from 'react'
22
import { useDispatch, useSelector } from 'react-redux'
33
import { io, Socket } from 'socket.io-client'
44

5-
import { remove } from 'lodash'
6-
import { CloudJobEvents, SocketEvent, SocketFeaturesEvent } from 'uiSrc/constants'
5+
import { get, remove } from 'lodash'
6+
import { ApiStatusCode, CloudJobEvents, SocketEvent, SocketFeaturesEvent } from 'uiSrc/constants'
77
import { NotificationEvent } from 'uiSrc/constants/notifications'
88
import { setNewNotificationAction } from 'uiSrc/slices/app/notifications'
99
import { setIsConnected } from 'uiSrc/slices/app/socket-connection'
@@ -13,7 +13,7 @@ import { addUnreadRecommendations } from 'uiSrc/slices/recommendations/recommend
1313
import { RecommendationsSocketEvents } from 'uiSrc/constants/recommendations'
1414
import { getFeatureFlagsSuccess } from 'uiSrc/slices/app/features'
1515
import { CustomHeaders } from 'uiSrc/constants/api'
16-
import { oauthCloudJobSelector, setJob } from 'uiSrc/slices/oauth/cloud'
16+
import { logoutUser, oauthCloudJobSelector, setJob } from 'uiSrc/slices/oauth/cloud'
1717
import { CloudJobName } from 'uiSrc/electron/constants'
1818
import { CloudJobInfo } from 'apiSrc/modules/cloud/job/models'
1919

@@ -55,6 +55,13 @@ const CommonAppSubscription = () => {
5555

5656
socketRef.current.on(CloudJobEvents.Monitor, (data: CloudJobInfo) => {
5757
const jobName = data.name as unknown
58+
const statusCode = get(data, 'error.statusCode')
59+
60+
if (statusCode === ApiStatusCode.Unauthorized) {
61+
dispatch(logoutUser())
62+
return
63+
}
64+
5865
if (
5966
jobName === CloudJobName.CreateFreeDatabase
6067
|| jobName === CloudJobName.CreateFreeSubscriptionAndDatabase

redisinsight/ui/src/components/side-panels/panels/ai-assistant/components/texts.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export const EXPERT_CHAT_AGREEMENTS = (
8282

8383
export const EXPERT_CHAT_INITIAL_MESSAGE = (
8484
<>
85-
<EuiText size="xs">Welcome!</EuiText>
85+
<EuiText size="xs">Hi!</EuiText>
8686
<EuiText size="xs">I am here to help you get started with data querying.</EuiText>
8787
<EuiText size="xs">Type <b>/help</b> to get more info on what questions I can answer.</EuiText>
8888
<EuiSpacer />

0 commit comments

Comments
 (0)