@@ -25,13 +25,18 @@ import { DatabaseConnectionService } from 'src/modules/database/database-connect
25
25
import { RECOMMENDATION_NAMES } from 'src/constants' ;
26
26
import { DatabaseClientFactory } from 'src/modules/database/providers/database.client.factory' ;
27
27
import { FeatureService } from 'src/modules/feature/feature.service' ;
28
+ import { getHostingProvider } from 'src/utils/hosting-provider-helper' ;
29
+ import { HostingProvider } from 'src/modules/database/entities/database.entity' ;
30
+
31
+ jest . mock ( 'src/utils/hosting-provider-helper' ) ;
28
32
29
33
describe ( 'DatabaseConnectionService' , ( ) => {
30
34
let service : DatabaseConnectionService ;
31
35
let analytics : MockType < DatabaseAnalytics > ;
32
36
let recommendationService : MockType < DatabaseRecommendationService > ;
33
37
let databaseInfoProvider : MockType < DatabaseInfoProvider > ;
34
38
let featureService : MockType < FeatureService > ;
39
+ let repository : MockType < DatabaseRepository > ;
35
40
36
41
beforeEach ( async ( ) => {
37
42
jest . clearAllMocks ( ) ;
@@ -76,6 +81,7 @@ describe('DatabaseConnectionService', () => {
76
81
recommendationService = module . get ( DatabaseRecommendationService ) ;
77
82
databaseInfoProvider = module . get ( DatabaseInfoProvider ) ;
78
83
featureService = module . get ( FeatureService ) ;
84
+ repository = module . get ( DatabaseRepository ) ;
79
85
80
86
featureService . getByName . mockResolvedValue ( {
81
87
flag : false ,
@@ -107,6 +113,33 @@ describe('DatabaseConnectionService', () => {
107
113
) ;
108
114
} ) ;
109
115
116
+ it ( 'should recalculate provider if not available in the list of providers' , async ( ) => {
117
+ const testHost = 'localhost' ;
118
+ repository . get . mockResolvedValue ( {
119
+ host : testHost ,
120
+ provider : 'not-in-providers-enum' ,
121
+ } ) ;
122
+
123
+ ( getHostingProvider as jest . Mock ) . mockResolvedValue (
124
+ HostingProvider . REDIS_STACK ,
125
+ ) ;
126
+
127
+ await service . connect ( mockCommonClientMetadata ) ;
128
+
129
+ expect ( getHostingProvider ) . toHaveBeenCalledWith (
130
+ expect . any ( Object ) ,
131
+ testHost ,
132
+ ) ;
133
+
134
+ expect ( repository . update ) . toHaveBeenCalledWith (
135
+ mockCommonClientMetadata . sessionMetadata ,
136
+ mockCommonClientMetadata . databaseId ,
137
+ expect . objectContaining ( {
138
+ provider : HostingProvider . REDIS_STACK ,
139
+ } ) ,
140
+ ) ;
141
+ } ) ;
142
+
110
143
it ( 'should call check try rdi recommendation' , async ( ) => {
111
144
featureService . getByName . mockResolvedValueOnce ( {
112
145
flag : true ,
0 commit comments