@@ -3,12 +3,36 @@ import React from 'react'
3
3
import { BrowserRouter } from 'react-router-dom'
4
4
import { instance , mock } from 'ts-mockito'
5
5
6
- import { cleanup , mockedStore , render } from 'uiSrc/utils/test-utils'
6
+ import { cleanup , mockedStore , render , act } from 'uiSrc/utils/test-utils'
7
7
import { BrowserStorageItem } from 'uiSrc/constants'
8
8
import { localStorageService } from 'uiSrc/services'
9
9
import { appFeatureFlagsFeaturesSelector } from 'uiSrc/slices/app/features'
10
+ import { resetKeys , resetPatternKeysData } from 'uiSrc/slices/browser/keys'
11
+ import { setMonitorInitialState } from 'uiSrc/slices/cli/monitor'
12
+ import { setInitialPubSubState } from 'uiSrc/slices/pubsub/pubsub'
13
+ import { setBulkActionsInitialState } from 'uiSrc/slices/browser/bulkActions'
14
+ import {
15
+ appContextSelector ,
16
+ setAppContextConnectedInstanceId ,
17
+ setAppContextInitialState ,
18
+ setDbConfig
19
+ } from 'uiSrc/slices/app/context'
20
+ import { resetCliHelperSettings } from 'uiSrc/slices/cli/cli-settings'
21
+ import { resetRedisearchKeysData , setRedisearchInitialState } from 'uiSrc/slices/browser/redisearch'
22
+ import { setClusterDetailsInitialState } from 'uiSrc/slices/analytics/clusterDetails'
23
+ import { setDatabaseAnalysisInitialState } from 'uiSrc/slices/analytics/dbAnalysis'
24
+ import { setInitialAnalyticsSettings } from 'uiSrc/slices/analytics/settings'
25
+ import { resetRecommendationsHighlighting } from 'uiSrc/slices/recommendations/recommendations'
26
+ import { setTriggeredFunctionsInitialState } from 'uiSrc/slices/triggeredFunctions/triggeredFunctions'
27
+ import {
28
+ getDatabaseConfigInfo ,
29
+ setConnectedInfoInstance ,
30
+ setConnectedInstance ,
31
+ setDefaultInstance
32
+ } from 'uiSrc/slices/instances/instances'
10
33
import InstancePage , { getDefaultSizes , Props } from './InstancePage'
11
34
35
+ const INSTANCE_ID_MOCK = 'instanceId'
12
36
const mockedProps = mock < Props > ( )
13
37
14
38
jest . mock ( 'uiSrc/services' , ( ) => ( {
@@ -27,6 +51,13 @@ jest.mock('uiSrc/slices/app/features', () => ({
27
51
} ) ,
28
52
} ) )
29
53
54
+ jest . mock ( 'uiSrc/slices/app/context' , ( ) => ( {
55
+ ...jest . requireActual ( 'uiSrc/slices/app/context' ) ,
56
+ appContextSelector : jest . fn ( ) . mockReturnValue ( {
57
+ contextInstanceId : INSTANCE_ID_MOCK
58
+ } ) ,
59
+ } ) )
60
+
30
61
let store : typeof mockedStore
31
62
beforeEach ( ( ) => {
32
63
cleanup ( )
@@ -102,4 +133,47 @@ describe('InstancePage', () => {
102
133
defaultSizes
103
134
)
104
135
} )
136
+
137
+ it ( 'should call proper actions with resetting context' , async ( ) => {
138
+ ( appContextSelector as jest . Mock ) . mockReturnValue ( {
139
+ contextInstanceId : 'prevId'
140
+ } )
141
+
142
+ await act ( ( ) => {
143
+ render (
144
+ < BrowserRouter >
145
+ < InstancePage { ...instance ( mockedProps ) } />
146
+ </ BrowserRouter >
147
+ )
148
+ } )
149
+
150
+ const resetContextActions = [
151
+ resetKeys ( ) ,
152
+ setMonitorInitialState ( ) ,
153
+ setInitialPubSubState ( ) ,
154
+ setBulkActionsInitialState ( ) ,
155
+ setAppContextInitialState ( ) ,
156
+ resetPatternKeysData ( ) ,
157
+ resetCliHelperSettings ( ) ,
158
+ resetRedisearchKeysData ( ) ,
159
+ setClusterDetailsInitialState ( ) ,
160
+ setDatabaseAnalysisInitialState ( ) ,
161
+ setInitialAnalyticsSettings ( ) ,
162
+ setRedisearchInitialState ( ) ,
163
+ resetRecommendationsHighlighting ( ) ,
164
+ setTriggeredFunctionsInitialState ( ) ,
165
+ ]
166
+
167
+ const expectedActions = [
168
+ setDefaultInstance ( ) ,
169
+ setConnectedInstance ( ) ,
170
+ getDatabaseConfigInfo ( ) ,
171
+ setConnectedInfoInstance ( ) ,
172
+ ...resetContextActions ,
173
+ setAppContextConnectedInstanceId ( INSTANCE_ID_MOCK ) ,
174
+ setDbConfig ( undefined ) ,
175
+ ]
176
+
177
+ expect ( store . getActions ( ) . slice ( 0 , expectedActions . length ) ) . toEqual ( expectedActions )
178
+ } )
105
179
} )
0 commit comments