@@ -10,6 +10,7 @@ import { Feature } from 'src/modules/feature/model/feature';
10
10
import { FeatureEntity } from 'src/modules/feature/entities/feature.entity' ;
11
11
import { mockAppSettings } from 'src/__mocks__/app-settings' ;
12
12
import config from 'src/utils/config' ;
13
+ import { KnownFeatures } from 'src/modules/feature/constants' ;
13
14
import * as defaultConfig from '../../config/features-config.json' ;
14
15
15
16
export const mockFeaturesConfigId = '1' ;
@@ -20,7 +21,7 @@ export const mockControlGroup = '7';
20
21
export const mockFeaturesConfigJson = {
21
22
version : mockFeaturesConfigVersion ,
22
23
features : {
23
- liveRecommendations : {
24
+ [ KnownFeatures . InsightsRecommendations ] : {
24
25
perc : [ [ 1.25 , 8.45 ] ] ,
25
26
flag : true ,
26
27
filters : [
@@ -37,8 +38,8 @@ export const mockFeaturesConfigJson = {
37
38
export const mockFeaturesConfigJsonComplex = {
38
39
...mockFeaturesConfigJson ,
39
40
features : {
40
- liveRecommendations : {
41
- ...mockFeaturesConfigJson . features . liveRecommendations ,
41
+ [ KnownFeatures . InsightsRecommendations ] : {
42
+ ...mockFeaturesConfigJson . features [ KnownFeatures . InsightsRecommendations ] ,
42
43
filters : [
43
44
{
44
45
or : [
@@ -80,10 +81,12 @@ export const mockFeaturesConfigJsonComplex = {
80
81
export const mockFeaturesConfigData = Object . assign ( new FeaturesConfigData ( ) , {
81
82
...mockFeaturesConfigJson ,
82
83
features : new Map ( Object . entries ( {
83
- liveRecommendations : Object . assign ( new FeatureConfig ( ) , {
84
- ...mockFeaturesConfigJson . features . liveRecommendations ,
84
+ [ KnownFeatures . InsightsRecommendations ] : Object . assign ( new FeatureConfig ( ) , {
85
+ ...mockFeaturesConfigJson . features [ KnownFeatures . InsightsRecommendations ] ,
85
86
filters : [
86
- Object . assign ( new FeatureConfigFilter ( ) , { ...mockFeaturesConfigJson . features . liveRecommendations . filters [ 0 ] } ) ,
87
+ Object . assign ( new FeatureConfigFilter ( ) , {
88
+ ...mockFeaturesConfigJson . features [ KnownFeatures . InsightsRecommendations ] . filters [ 0 ] ,
89
+ } ) ,
87
90
] ,
88
91
} ) ,
89
92
} ) ) ,
@@ -92,8 +95,8 @@ export const mockFeaturesConfigData = Object.assign(new FeaturesConfigData(), {
92
95
export const mockFeaturesConfigDataComplex = Object . assign ( new FeaturesConfigData ( ) , {
93
96
...mockFeaturesConfigJson ,
94
97
features : new Map ( Object . entries ( {
95
- liveRecommendations : Object . assign ( new FeatureConfig ( ) , {
96
- ...mockFeaturesConfigJson . features . liveRecommendations ,
98
+ [ KnownFeatures . InsightsRecommendations ] : Object . assign ( new FeatureConfig ( ) , {
99
+ ...mockFeaturesConfigJson . features [ KnownFeatures . InsightsRecommendations ] ,
97
100
filters : [
98
101
Object . assign ( new FeatureConfigFilterOr ( ) , {
99
102
or : [
@@ -153,13 +156,18 @@ export const mockFeaturesConfigEntityComplex = Object.assign(new FeaturesConfigE
153
156
} ) ;
154
157
155
158
export const mockFeature = Object . assign ( new Feature ( ) , {
156
- name : 'liveRecommendations' ,
159
+ name : KnownFeatures . InsightsRecommendations ,
160
+ flag : true ,
161
+ } ) ;
162
+
163
+ export const mockUnknownFeature = Object . assign ( new Feature ( ) , {
164
+ name : 'unknown' ,
157
165
flag : true ,
158
166
} ) ;
159
167
160
168
export const mockFeatureEntity = Object . assign ( new FeatureEntity ( ) , {
161
169
id : 'lr-1' ,
162
- name : 'liveRecommendations' ,
170
+ name : KnownFeatures . InsightsRecommendations ,
163
171
flag : true ,
164
172
} ) ;
165
173
@@ -175,10 +183,37 @@ export const mockFeaturesConfigRepository = jest.fn(() => ({
175
183
update : jest . fn ( ) . mockResolvedValue ( mockFeaturesConfig ) ,
176
184
} ) ) ;
177
185
178
- export const mockFeaturesConfigService = ( ) => ( {
186
+ export const mockFeatureRepository = jest . fn ( ( ) => ( {
187
+ get : jest . fn ( ) . mockResolvedValue ( mockFeature ) ,
188
+ upsert : jest . fn ( ) . mockResolvedValue ( { updated : 1 } ) ,
189
+ list : jest . fn ( ) . mockResolvedValue ( [ mockFeature ] ) ,
190
+ delete : jest . fn ( ) . mockResolvedValue ( { deleted : 1 } ) ,
191
+ } ) ) ;
192
+
193
+ export const mockFeaturesConfigService = jest . fn ( ( ) => ( {
179
194
sync : jest . fn ( ) ,
180
195
getControlInfo : jest . fn ( ) . mockResolvedValue ( {
181
196
controlNumber : mockControlNumber ,
182
197
controlGroup : mockControlGroup ,
183
198
} ) ,
184
- } ) ;
199
+ } ) ) ;
200
+
201
+ export const mockFeatureService = jest . fn ( ( ) => ( {
202
+ isFeatureEnabled : jest . fn ( ) . mockResolvedValue ( true ) ,
203
+ } ) ) ;
204
+
205
+ export const mockFeatureAnalytics = jest . fn ( ( ) => ( {
206
+ sendFeatureFlagConfigUpdated : jest . fn ( ) ,
207
+ sendFeatureFlagConfigUpdateError : jest . fn ( ) ,
208
+ sendFeatureFlagInvalidRemoteConfig : jest . fn ( ) ,
209
+ sendFeatureFlagRecalculated : jest . fn ( ) ,
210
+ } ) ) ;
211
+
212
+ export const mockInsightsRecommendationsFlagStrategy = {
213
+ calculate : jest . fn ( ) . mockResolvedValue ( true ) ,
214
+ } ;
215
+
216
+ export const mockFeatureFlagProvider = jest . fn ( ( ) => ( {
217
+ getStrategy : jest . fn ( ) . mockResolvedValue ( mockInsightsRecommendationsFlagStrategy ) ,
218
+ calculate : jest . fn ( ) . mockResolvedValue ( true ) ,
219
+ } ) ) ;
0 commit comments