@@ -6,46 +6,65 @@ import * as chaiAsPromised from "chai-as-promised";
66chai . use ( chaiAsPromised ) ;
77const expect = chai . expect ;
88
9- import { FeatureManager , ConfigurationFeatureProvider } from "./exportedApi" ;
9+ import { FeatureManager , ConfigurationObjectFeatureFlagProvider , ConfigurationMapFeatureFlagProvider } from "./exportedApi" ;
1010
1111describe ( "feature manager" , ( ) => {
1212 it ( "should load from json string" , ( ) => {
1313 const jsonObject = {
14- "FeatureManagement " : {
15- "FeatureFlags " : [
14+ "feature_management " : {
15+ "feature_flags " : [
1616 { "id" : "Alpha" , "description" : "" , "enabled" : true }
1717 ]
1818 }
1919 } ;
2020
21- const provider = new ConfigurationFeatureProvider ( jsonObject ) ;
21+ const provider = new ConfigurationObjectFeatureFlagProvider ( jsonObject ) ;
2222 const featureManager = new FeatureManager ( provider ) ;
2323 return expect ( featureManager . isEnabled ( "Alpha" ) ) . eventually . eq ( true ) ;
2424 } ) ;
2525
2626 it ( "should load from map" , ( ) => {
2727 const dataSource = new Map ( ) ;
28- dataSource . set ( "FeatureManagement " , {
29- FeatureFlags : [
28+ dataSource . set ( "feature_management " , {
29+ feature_flags : [
3030 { id : "Alpha" , enabled : true }
3131 ] ,
3232 } ) ;
3333
34- const provider = new ConfigurationFeatureProvider ( dataSource ) ;
34+ const provider = new ConfigurationMapFeatureFlagProvider ( dataSource ) ;
3535 const featureManager = new FeatureManager ( provider ) ;
3636 return expect ( featureManager . isEnabled ( "Alpha" ) ) . eventually . eq ( true ) ;
3737 } ) ;
3838
39+ it ( "should load latest data if source is updated after initialization" , ( ) => {
40+ const dataSource = new Map ( ) ;
41+ dataSource . set ( "feature_management" , {
42+ feature_flags : [
43+ { id : "Alpha" , enabled : true }
44+ ] ,
45+ } ) ;
46+
47+ const provider = new ConfigurationMapFeatureFlagProvider ( dataSource ) ;
48+ const featureManager = new FeatureManager ( provider ) ;
49+ dataSource . set ( "feature_management" , {
50+ feature_flags : [
51+ { id : "Alpha" , enabled : false }
52+ ] ,
53+ } ) ;
54+
55+ return expect ( featureManager . isEnabled ( "Alpha" ) ) . eventually . eq ( false ) ;
56+ } ) ;
57+
3958 it ( "shoud evaluate features without conditions" , ( ) => {
4059 const dataSource = new Map ( ) ;
41- dataSource . set ( "FeatureManagement " , {
42- FeatureFlags : [
60+ dataSource . set ( "feature_management " , {
61+ feature_flags : [
4362 { "id" : "Alpha" , "description" : "" , "enabled" : true , "conditions" : { "client_filters" : [ ] } } ,
4463 { "id" : "Beta" , "description" : "" , "enabled" : false , "conditions" : { "client_filters" : [ ] } }
4564 ] ,
4665 } ) ;
4766
48- const provider = new ConfigurationFeatureProvider ( dataSource ) ;
67+ const provider = new ConfigurationMapFeatureFlagProvider ( dataSource ) ;
4968 const featureManager = new FeatureManager ( provider ) ;
5069 return Promise . all ( [
5170 expect ( featureManager . isEnabled ( "Alpha" ) ) . eventually . eq ( true ) ,
0 commit comments