1
1
import { Database } from 'src/modules/database/models/database' ;
2
- import {
3
- mockCaCertificate ,
4
- mockClientCertificate ,
5
- } from 'src/__mocks__/certificates' ;
2
+ import { mockCaCertificate , mockClientCertificate } from 'src/__mocks__/certificates' ;
6
3
import { SentinelMaster } from 'src/modules/redis-sentinel/models/sentinel-master' ;
7
4
import { ConnectionType , DatabaseEntity } from 'src/modules/database/entities/database.entity' ;
8
5
import { EncryptionStrategy } from 'src/modules/encryption/models' ;
9
6
import { mockIORedisClient } from 'src/__mocks__/redis' ;
7
+ import { mockSentinelMasterDto } from 'src/__mocks__/redis-sentinel' ;
8
+ import { pick } from 'lodash' ;
9
+ import { mockRedisGeneralInfo } from 'src/modules/database/providers/database-info.provider.spec' ;
10
+ import { ClientMetadata } from 'src/modules/redis/models/client-metadata' ;
11
+ import { AppTool } from 'src/models' ;
12
+ import { DatabaseOverview } from 'src/modules/database/models/database-overview' ;
10
13
11
14
export const mockDatabaseId = 'a77b23c1-7816-4ea4-b61f-d37795a0f805-db-id' ;
12
15
@@ -21,8 +24,8 @@ export const mockDatabaseSentinelMasterPasswordPlain = 'some sentinel pass';
21
24
export const mockDatabase = Object . assign ( new Database ( ) , {
22
25
id : mockDatabaseId ,
23
26
name : 'database-name' ,
24
- host : 'localhost ' ,
25
- port : 3679 ,
27
+ host : '127.0.100.1 ' ,
28
+ port : 6379 ,
26
29
connectionType : ConnectionType . STANDALONE ,
27
30
} ) ;
28
31
@@ -69,7 +72,7 @@ export const mockDatabaseWithTlsAuthEntity = Object.assign(new DatabaseEntity(),
69
72
} ) ;
70
73
71
74
export const mockSentinelMaster = Object . assign ( new SentinelMaster ( ) , {
72
- name : 'master_group_name ' ,
75
+ name : 'mymaster ' ,
73
76
username : 'master_group_username' ,
74
77
password : mockDatabaseSentinelMasterPasswordPlain ,
75
78
} ) ;
@@ -78,6 +81,7 @@ export const mockSentinelDatabaseWithTlsAuth = Object.assign(new Database(), {
78
81
...mockDatabaseWithTlsAuth ,
79
82
sentinelMaster : mockSentinelMaster ,
80
83
connectionType : ConnectionType . SENTINEL ,
84
+ nodes : mockSentinelMasterDto . nodes ,
81
85
} ) ;
82
86
83
87
export const mockSentinelDatabaseWithTlsAuthEntity = Object . assign ( new DatabaseEntity ( ) , {
@@ -86,18 +90,62 @@ export const mockSentinelDatabaseWithTlsAuthEntity = Object.assign(new DatabaseE
86
90
sentinelMasterUsername : mockSentinelMaster . username ,
87
91
sentinelMasterPassword : mockDatabaseSentinelMasterPasswordEncrypted ,
88
92
connectionType : ConnectionType . SENTINEL ,
93
+ nodes : JSON . stringify ( mockSentinelDatabaseWithTlsAuth . nodes ) ,
89
94
} ) ;
95
+ export const mockClusterNodes = [
96
+ {
97
+ host : '127.0.100.1' ,
98
+ port : 6379 ,
99
+ } ,
100
+ {
101
+ host : '127.0.100.2' ,
102
+ port : 6379 ,
103
+ } ,
104
+ ] ;
90
105
91
106
export const mockClusterDatabaseWithTlsAuth = Object . assign ( new Database ( ) , {
92
107
...mockDatabaseWithTlsAuth ,
93
108
connectionType : ConnectionType . CLUSTER ,
109
+ nodes : mockClusterNodes ,
94
110
} ) ;
95
111
96
112
export const mockClusterDatabaseWithTlsAuthEntity = Object . assign ( new DatabaseEntity ( ) , {
97
113
...mockDatabaseWithTlsAuthEntity ,
98
114
connectionType : ConnectionType . CLUSTER ,
115
+ nodes : JSON . stringify ( mockClusterNodes ) ,
99
116
} ) ;
100
117
118
+ export const mockClientMetadata : ClientMetadata = {
119
+ databaseId : mockDatabase . id ,
120
+ namespace : AppTool . Common ,
121
+ } ;
122
+
123
+ export const mockDatabaseOverview : DatabaseOverview = {
124
+ version : '6.2.4' ,
125
+ usedMemory : 1 ,
126
+ totalKeys : 2 ,
127
+ totalKeysPerDb : {
128
+ db0 : 1 ,
129
+ } ,
130
+ connectedClients : 1 ,
131
+ opsPerSecond : 1 ,
132
+ networkInKbps : 1 ,
133
+ networkOutKbps : 1 ,
134
+ cpuUsagePercentage : null ,
135
+ } ;
136
+
137
+ export const mockDatabaseRepository = jest . fn ( ( ) => ( {
138
+ exists : jest . fn ( ) . mockResolvedValue ( true ) ,
139
+ get : jest . fn ( ) . mockResolvedValue ( mockDatabase ) ,
140
+ create : jest . fn ( ) . mockResolvedValue ( mockDatabase ) ,
141
+ update : jest . fn ( ) . mockResolvedValue ( mockDatabase ) ,
142
+ delete : jest . fn ( ) ,
143
+ list : jest . fn ( ) . mockResolvedValue ( [
144
+ pick ( mockDatabase , 'id' , 'name' ) ,
145
+ pick ( mockDatabase , 'id' , 'name' ) ,
146
+ ] ) ,
147
+ } ) ) ;
148
+
101
149
export const mockDatabaseService = jest . fn ( ( ) => ( {
102
150
get : jest . fn ( ) . mockResolvedValue ( mockDatabase ) ,
103
151
create : jest . fn ( ) . mockResolvedValue ( mockDatabase ) ,
@@ -107,3 +155,32 @@ export const mockDatabaseService = jest.fn(() => ({
107
155
export const mockDatabaseConnectionService = jest . fn ( ( ) => ( {
108
156
getOrCreateClient : jest . fn ( ) . mockResolvedValue ( mockIORedisClient ) ,
109
157
} ) ) ;
158
+
159
+ export const mockDatabaseInfoProvider = jest . fn ( ( ) => ( {
160
+ isCluster : jest . fn ( ) ,
161
+ isSentinel : jest . fn ( ) ,
162
+ determineDatabaseModules : jest . fn ( ) ,
163
+ determineSentinelMasterGroups : jest . fn ( ) . mockReturnValue ( [ mockSentinelMasterDto ] ) ,
164
+ determineClusterNodes : jest . fn ( ) . mockResolvedValue ( mockClusterNodes ) ,
165
+ getRedisGeneralInfo : jest . fn ( ) . mockResolvedValueOnce ( mockRedisGeneralInfo ) ,
166
+ } ) ) ;
167
+
168
+ export const mockDatabaseOverviewProvider = jest . fn ( ( ) => ( {
169
+ getOverview : jest . fn ( ) . mockResolvedValue ( mockDatabaseOverview ) ,
170
+ } ) ) ;
171
+
172
+ export const mockDatabaseFactory = jest . fn ( ( ) => ( {
173
+ createDatabaseModel : jest . fn ( ) . mockResolvedValue ( mockDatabase ) ,
174
+ createStandaloneDatabaseModel : jest . fn ( ) . mockResolvedValue ( mockDatabase ) ,
175
+ createClusterDatabaseModel : jest . fn ( ) . mockResolvedValue ( mockClusterDatabaseWithTlsAuth ) ,
176
+ createSentinelDatabaseModel : jest . fn ( ) . mockResolvedValue ( mockSentinelDatabaseWithTlsAuth ) ,
177
+ } ) ) ;
178
+
179
+ export const mockDatabaseAnalytics = jest . fn ( ( ) => ( {
180
+ sendInstanceListReceivedEvent : jest . fn ( ) ,
181
+ sendConnectionFailedEvent : jest . fn ( ) ,
182
+ sendInstanceAddedEvent : jest . fn ( ) ,
183
+ sendInstanceAddFailedEvent : jest . fn ( ) ,
184
+ sendInstanceEditedEvent : jest . fn ( ) ,
185
+ sendInstanceDeletedEvent : jest . fn ( ) ,
186
+ } ) ) ;
0 commit comments