Skip to content

Commit 95b8f76

Browse files
committed
Merge branch 'main' into feature/RI-2743_Enhanced_overview
# Conflicts: # redisinsight/ui/src/mocks/handlers/app/infoHandlers.ts
2 parents c6586d2 + 05f48b2 commit 95b8f76

File tree

7 files changed

+46
-29
lines changed

7 files changed

+46
-29
lines changed

redisinsight/ui/src/components/cli/CliWrapper.spec.tsx

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import { cloneDeep } from 'lodash'
22
import React from 'react'
3-
import { processCliClient, setCliEnteringCommand } from 'uiSrc/slices/cli/cli-settings'
4-
import { cleanup, mockedStore, render } from 'uiSrc/utils/test-utils'
3+
import { InitOutputText } from 'uiSrc/constants/cliOutput'
4+
import { concatToOutput } from 'uiSrc/slices/cli/cli-output'
5+
import { setCliEnteringCommand } from 'uiSrc/slices/cli/cli-settings'
6+
import { cleanup, clearStoreActions, mockedStore, render } from 'uiSrc/utils/test-utils'
57
import CliWrapper from './CliWrapper'
68

7-
jest.mock('uiSrc/slices/cli/cli-output', () => ({
8-
...jest.requireActual('uiSrc/slices/cli/cli-output'),
9-
concatToOutput: () => jest.fn(),
10-
}))
11-
129
const redisCommandsPath = 'uiSrc/slices/app/redis-commands'
1310

11+
let mathRandom: jest.SpyInstance<number>
12+
const random = 0.91911
1413
let store: typeof mockedStore
1514
beforeEach(() => {
1615
cleanup()
@@ -32,6 +31,14 @@ jest.mock(redisCommandsPath, () => {
3231
})
3332

3433
describe('CliWrapper', () => {
34+
beforeAll(() => {
35+
mathRandom = jest.spyOn(Math, 'random').mockImplementation(() => random)
36+
})
37+
38+
afterAll(() => {
39+
mathRandom.mockRestore()
40+
})
41+
3542
it('should render', () => {
3643
expect(render(<CliWrapper />)).toBeTruthy()
3744
})
@@ -40,7 +47,12 @@ describe('CliWrapper', () => {
4047

4148
unmount()
4249

43-
const expectedActions = [processCliClient(), setCliEnteringCommand()]
44-
expect(store.getActions().slice(-2)).toEqual(expectedActions)
50+
const handleWorkbenchClick = () => {}
51+
52+
const expectedActions = [
53+
concatToOutput(InitOutputText('', 0, 0, true, handleWorkbenchClick)),
54+
setCliEnteringCommand(),
55+
]
56+
expect(clearStoreActions(store.getActions().slice(-2))).toEqual(clearStoreActions(expectedActions))
4557
})
4658
})

redisinsight/ui/src/components/cli/components/cli-body/CliBodyWrapper.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ const CliBodyWrapper = () => {
5353
const { db: currentDbIndex } = useSelector(outputSelector)
5454

5555
useEffect(() => {
56-
!cliClientUuid && dispatch(createCliClientAction(handleWorkbenchClick))
56+
!cliClientUuid && dispatch(createCliClientAction(instanceId, handleWorkbenchClick))
5757
}, [])
5858

5959
useEffect(() => {

redisinsight/ui/src/mocks/handlers/app/infoHandlers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const APP_INFO_DATA_MOCK = {
1212
}
1313

1414
const handlers: RestHandler[] = [
15-
// useGetClusterDetailsQuery
15+
// fetchServerInfo
1616
rest.get<DatabaseInstanceResponse[]>(getMswURL(ApiEndpoints.INFO), async (req, res, ctx) => res(
1717
ctx.status(200),
1818
ctx.json(APP_INFO_DATA_MOCK),

redisinsight/ui/src/mocks/handlers/instances/instancesHandlers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { ApiEndpoints } from 'uiSrc/constants'
44
import { ConnectionType } from 'uiSrc/slices/interfaces'
55
import { getMswURL } from 'uiSrc/utils/test-utils'
66

7+
export const INSTANCE_ID_MOCK = 'instanceId'
8+
79
const handlers: RestHandler[] = [
810
// fetchInstancesAction
911
rest.get<DatabaseInstanceResponse[]>(getMswURL(ApiEndpoints.INSTANCE), async (req, res, ctx) => res(

redisinsight/ui/src/slices/cli/cli-settings.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ export default cliSettingsSlice.reducer
182182

183183
// Asynchronous thunk action
184184
export function createCliClientAction(
185+
instanceId: string,
185186
onWorkbenchClick: () => void,
186187
onSuccessAction?: () => void,
187188
onFailAction?: (message: string) => void
@@ -195,7 +196,7 @@ export function createCliClientAction(
195196

196197
try {
197198
const { data, status } = await apiService.post<CreateCliClientResponse>(
198-
getUrl(state.connections.instances.connectedInstance?.id ?? '', ApiEndpoints.CLI)
199+
getUrl(instanceId ?? '', ApiEndpoints.CLI)
199200
)
200201

201202
if (isStatusSuccessful(status)) {

redisinsight/ui/src/slices/tests/cli/cli-output.spec.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { apiService } from 'uiSrc/services'
88
import { cliTexts } from 'uiSrc/constants/cliOutput'
99
import { cliParseTextResponseWithOffset, cliParseTextResponseWithRedirect } from 'uiSrc/utils/cliHelper'
1010
import ApiErrors from 'uiSrc/constants/apiErrors'
11-
import { updateCliClientAction } from 'uiSrc/slices/cli/cli-settings'
11+
import { processCliClient, updateCliClientAction } from 'uiSrc/slices/cli/cli-settings'
1212
import reducer, {
1313
concatToOutput,
1414
initialState,
@@ -354,10 +354,8 @@ describe('cliOutput slice', () => {
354354
sendCliCommand(),
355355
sendCliCommandFailure(responsePayload.response.data.message),
356356
concatToOutput(cliParseTextResponseWithOffset(errorMessage, command, CommandExecutionStatus.Fail)),
357-
concatToOutput(['\n']),
358-
concatToOutput(['\n'])
357+
processCliClient(),
359358
]
360-
expect(updateCliClientAction).toHaveBeenCalled()
361359
expect(clearStoreActions(tempStore.getActions())).toEqual(clearStoreActions(expectedActions))
362360
})
363361
})
@@ -484,10 +482,8 @@ describe('cliOutput slice', () => {
484482
sendCliCommand(),
485483
sendCliCommandFailure(responsePayload.response.data.message),
486484
concatToOutput(cliParseTextResponseWithOffset(errorMessage, command, CommandExecutionStatus.Fail)),
487-
concatToOutput(['\n']),
488-
concatToOutput(['\n'])
485+
processCliClient(),
489486
]
490-
expect(updateCliClientAction).toHaveBeenCalled()
491487
expect(clearStoreActions(tempStore.getActions())).toEqual(clearStoreActions(expectedActions))
492488
})
493489
})

redisinsight/ui/src/slices/tests/cli/cli-settings.spec.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
ConnectionSuccessOutputText,
88
InitOutputText,
99
} from 'uiSrc/constants/cliOutput'
10+
import { INSTANCE_ID_MOCK } from 'uiSrc/mocks/handlers/instances/instancesHandlers'
1011
import reducer, {
1112
initialState,
1213
toggleCli,
@@ -32,11 +33,8 @@ import reducer, {
3233
resetCliHelperSettings, goBackFromCommand,
3334
} from '../../cli/cli-settings'
3435

35-
jest.mock('uiSrc/constants/cliOutput', () => ({
36-
...jest.requireActual('uiSrc/constants/cliOutput'),
37-
InitOutputText: jest.fn().mockReturnValue([]),
38-
}))
39-
36+
let mathRandom: jest.SpyInstance<number>
37+
const random = 0.91911
4038
let store: typeof mockedStore
4139
beforeEach(() => {
4240
cleanup()
@@ -53,6 +51,14 @@ jest.mock('uiSrc/services', () => ({
5351
}))
5452

5553
describe('cliSettings slice', () => {
54+
beforeAll(() => {
55+
mathRandom = jest.spyOn(Math, 'random').mockImplementation(() => random)
56+
})
57+
58+
afterAll(() => {
59+
mathRandom.mockRestore()
60+
})
61+
5662
describe('toggleCliHelper', () => {
5763
it('default state.isShowHelper should be falsy', () => {
5864
// Arrange
@@ -479,17 +485,17 @@ describe('cliSettings slice', () => {
479485
apiService.post = jest.fn().mockResolvedValue(responsePayload)
480486

481487
// Act
482-
await store.dispatch<any>(createCliClientAction())
488+
await store.dispatch<any>(createCliClientAction(INSTANCE_ID_MOCK, () => {}))
483489

484490
// Assert
485491
const expectedActions = [
486492
processCliClient(),
487-
concatToOutput(InitOutputText()),
493+
concatToOutput(InitOutputText('', 0, 0, true, () => {})),
488494
processCliClientSuccess(responsePayload.data?.uuid),
489495
concatToOutput(ConnectionSuccessOutputText),
490496
setCliDbIndex(0)
491497
]
492-
expect(store.getActions()).toEqual(expectedActions)
498+
expect(clearStoreActions(store.getActions())).toEqual(clearStoreActions(expectedActions))
493499
})
494500

495501
it('call both createCliClientAction and processCliClientFailure when fetch is fail', async () => {
@@ -505,12 +511,12 @@ describe('cliSettings slice', () => {
505511
apiService.post = jest.fn().mockRejectedValueOnce(responsePayload)
506512

507513
// Act
508-
await store.dispatch<any>(createCliClientAction())
514+
await store.dispatch<any>(createCliClientAction(INSTANCE_ID_MOCK, () => {}))
509515

510516
// Assert
511517
const expectedActions = [
512518
processCliClient(),
513-
concatToOutput(InitOutputText()),
519+
concatToOutput(InitOutputText('', 0, 0, true, () => {})),
514520
processCliClientFailure(responsePayload.response.data.message),
515521
concatToOutput(cliTexts.CLI_ERROR_MESSAGE(errorMessage))
516522
]

0 commit comments

Comments
 (0)