Skip to content

Commit e935d21

Browse files
Improve smoke test
1 parent cad4281 commit e935d21

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

dd-smoke-tests/springboot-java-11/src/test/groovy/datadog/smoketest/springboot/OpenFeatureProviderSmokeTest.groovy

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package datadog.smoketest.springboot
22

3+
import datadog.remoteconfig.Capabilities
4+
import datadog.remoteconfig.Product
35
import datadog.smoketest.AbstractServerSmokeTest
46
import groovy.json.JsonSlurper
57
import okhttp3.Request
@@ -19,6 +21,10 @@ class OpenFeatureProviderSmokeTest extends AbstractServerSmokeTest {
1921
return builder
2022
}
2123

24+
void setup() {
25+
setRemoteConfig()
26+
}
27+
2228
void 'test open feature provider metadata'() {
2329
setup:
2430
final url = "http://localhost:${httpPort}/openfeature/provider-metadata"
@@ -35,6 +41,17 @@ class OpenFeatureProviderSmokeTest extends AbstractServerSmokeTest {
3541
responseBody != null
3642
}
3743

44+
void 'test remote config'() {
45+
when:
46+
final rcRequest = waitForRcClientRequest {req ->
47+
decodeProducts(req).find { Product.FFE_FLAGS } != null
48+
}
49+
50+
then:
51+
final capabilities = decodeCapabilities(rcRequest)
52+
hasCapability(capabilities, Capabilities.CAPABILITY_FFE_FLAG_CONFIGURATION_RULES)
53+
}
54+
3855
void 'test open feature evaluation'() {
3956
setup:
4057
final url = "http://localhost:${httpPort}/openfeature/${type}?flagKey=${flag}&defaultValue=${defaultValue}"
@@ -62,4 +79,21 @@ class OpenFeatureProviderSmokeTest extends AbstractServerSmokeTest {
6279
'user_1' | 'string' | 'string-flag' | 'defaultString'
6380
'user_1' | 'object' | 'object-flag' | [hello: 'World!']
6481
}
82+
83+
private static Set<Product> decodeProducts(final Map<String, Object> request) {
84+
return request.client.products.collect { Product.valueOf(it)}
85+
}
86+
87+
private static long decodeCapabilities(final Map<String, Object> request) {
88+
final clientCapabilities = request.client.capabilities as byte[]
89+
long capabilities = 0l
90+
for (int i = 0; i < clientCapabilities.length; i++) {
91+
capabilities |= (clientCapabilities[i] & 0xFFL) << ((clientCapabilities.length - i - 1) * 8)
92+
}
93+
return capabilities
94+
}
95+
96+
private static boolean hasCapability(final long capabilities, final long test) {
97+
return (capabilities & test) > 0
98+
}
6599
}

0 commit comments

Comments
 (0)