From d71bf0851c1a855ab259a2e60a84b66599c3dd35 Mon Sep 17 00:00:00 2001 From: Justin Abrahms Date: Fri, 5 Aug 2022 14:38:47 -0700 Subject: [PATCH] error in before results in default params --- src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java | 2 -- src/test/java/dev/openfeature/javasdk/HookSpecTest.java | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java b/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java index 530f30a4..77a407a3 100644 --- a/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java +++ b/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java @@ -39,8 +39,6 @@ public class OpenFeatureClient implements Client { } // merge of: API.context, client.context, invocation.context - - // TODO: Context transformation? HookContext hookCtx = HookContext.from(key, type, this.getMetadata(), openfeatureApi.getProvider().getMetadata(), ctx, defaultValue); List mergedHooks = ObjectUtils.merge(provider.getProviderHooks(), flagOptions.getHooks(), clientHooks, openfeatureApi.getApiHooks()); diff --git a/src/test/java/dev/openfeature/javasdk/HookSpecTest.java b/src/test/java/dev/openfeature/javasdk/HookSpecTest.java index 95fa533e..8a9782b2 100644 --- a/src/test/java/dev/openfeature/javasdk/HookSpecTest.java +++ b/src/test/java/dev/openfeature/javasdk/HookSpecTest.java @@ -385,14 +385,16 @@ public class HookSpecTest implements HookFixtures { } @Specification(number="4.4.5", text="If an error occurs in the before or after hooks, the error hooks MUST be invoked.") + @Specification(number="4.4.7", text="If an error occurs in the before hooks, the default value MUST be returned.") @Test void error_hooks__before() { Hook hook = mockBooleanHook(); doThrow(RuntimeException.class).when(hook).before(any(), any()); Client client = getClient(null); - client.getBooleanValue("key", false, new EvaluationContext(), + Boolean value = client.getBooleanValue("key", false, new EvaluationContext(), FlagEvaluationOptions.builder().hook(hook).build()); verify(hook, times(1)).before(any(), any()); verify(hook, times(1)).error(any(), any(), any()); + assertEquals(false, value, "Falls through to the default."); } @Specification(number="4.4.5", text="If an error occurs in the before or after hooks, the error hooks MUST be invoked.")