Remove dynamic configuration feature flags; add DynamicMessagePersisterConfiguration

This commit is contained in:
Chris Eager
2022-07-27 13:59:46 -05:00
committed by Chris Eager
parent 41a113e22c
commit a6f9409a39
5 changed files with 78 additions and 42 deletions

View File

@@ -201,29 +201,6 @@ class DynamicConfigurationTest {
}
}
@Test
void testParseFeatureFlags() throws JsonProcessingException {
{
final String emptyConfigYaml = REQUIRED_CONFIG.concat("test: true");
final DynamicConfiguration emptyConfig =
DynamicConfigurationManager.parseConfiguration(emptyConfigYaml, DynamicConfiguration.class).orElseThrow();
assertTrue(emptyConfig.getActiveFeatureFlags().isEmpty());
}
{
final String featureFlagYaml = REQUIRED_CONFIG.concat("""
featureFlags:
- testFlag
""");
final DynamicConfiguration emptyConfig =
DynamicConfigurationManager.parseConfiguration(featureFlagYaml, DynamicConfiguration.class).orElseThrow();
assertTrue(emptyConfig.getActiveFeatureFlags().contains("testFlag"));
}
}
@Test
void testParseTwilioConfiguration() throws JsonProcessingException {
{
@@ -435,6 +412,43 @@ class DynamicConfigurationTest {
assertThat(turnConfiguration.getUriConfigs().get(1).getEnrolledNumbers()).containsExactly("+15555555555");
}
}
@Test
void testMessagePersister() throws JsonProcessingException {
{
final String emptyConfigYaml = REQUIRED_CONFIG.concat("test: true");
final DynamicConfiguration emptyConfig =
DynamicConfigurationManager.parseConfiguration(emptyConfigYaml, DynamicConfiguration.class).orElseThrow();
assertTrue(emptyConfig.getMessagePersisterConfiguration().isPersistenceEnabled());
}
{
final String messagePersisterEnabledYaml = REQUIRED_CONFIG.concat("""
messagePersister:
persistenceEnabled: true
""");
final DynamicConfiguration config =
DynamicConfigurationManager.parseConfiguration(messagePersisterEnabledYaml, DynamicConfiguration.class)
.orElseThrow();
assertTrue(config.getMessagePersisterConfiguration().isPersistenceEnabled());
}
{
final String messagePersisterDisabledYaml = REQUIRED_CONFIG.concat("""
messagePersister:
persistenceEnabled: false
""");
final DynamicConfiguration config =
DynamicConfigurationManager.parseConfiguration(messagePersisterDisabledYaml, DynamicConfiguration.class)
.orElseThrow();
assertFalse(config.getMessagePersisterConfiguration().isPersistenceEnabled());
}
}
}

View File

@@ -120,8 +120,9 @@ class DynamicConfigurationManagerTest {
configurationToken("1").build()))
.thenReturn(GetLatestConfigurationResponse.builder()
.configuration(SdkBytes.fromUtf8String("""
featureFlags:
- testFlag
experiments:
test:
enrollmentPercentage: 50
captcha:
scoreFloor: 1.0
"""))
@@ -139,10 +140,12 @@ class DynamicConfigurationManagerTest {
assertTimeoutPreemptively(Duration.ofSeconds(5), () -> {
// we should eventually get the updated config (or the test will timeout)
dynamicConfigurationManager.start();
while (dynamicConfigurationManager.getConfiguration().getActiveFeatureFlags().isEmpty()) {
while (dynamicConfigurationManager.getConfiguration().getExperimentEnrollmentConfiguration("test").isEmpty()) {
Thread.sleep(100);
}
assertThat(dynamicConfigurationManager.getConfiguration().getActiveFeatureFlags()).containsExactly("testFlag");
assertThat(
dynamicConfigurationManager.getConfiguration().getExperimentEnrollmentConfiguration("test").get()
.getEnrollmentPercentage()).isEqualTo(50);
});
}