From 1b4cd4441fc0857fbeb9cf0b18046dbc5c5f32cb Mon Sep 17 00:00:00 2001 From: Nicklas Lundin Date: Fri, 6 Mar 2026 16:46:06 +0100 Subject: [PATCH] test: add integration test for integer flag resolution from JSON blob Co-Authored-By: Claude Opus 4.6 --- .../confidence/ConfidenceIntegrationTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/sdk-java/src/test/java/com/spotify/confidence/ConfidenceIntegrationTest.java b/sdk-java/src/test/java/com/spotify/confidence/ConfidenceIntegrationTest.java index 32010273..69d57565 100644 --- a/sdk-java/src/test/java/com/spotify/confidence/ConfidenceIntegrationTest.java +++ b/sdk-java/src/test/java/com/spotify/confidence/ConfidenceIntegrationTest.java @@ -428,6 +428,46 @@ public void longValueInIntegerSchemaResolveShouldFail() { assertThat(evaluationDetails.getErrorType().get()).isEqualTo(ErrorType.INTERNAL_ERROR); } + @Test + public void resolveIntegerFromJsonBlob() { + mockResolve( + (request, streamObserver) -> { + final ResolveFlagsResponse response = + ResolveFlagsResponse.newBuilder() + .addResolvedFlags( + ResolvedFlag.newBuilder() + .setFlag("flags/test-flag") + .setVariant("flags/test-flag/variants/variant-1") + .setValue(Structs.of("myinteger", Values.of(400))) + .setFlagSchema( + FlagSchema.StructFlagSchema.newBuilder() + .putSchema( + "myinteger", + FlagSchema.newBuilder() + .setIntSchema( + FlagSchema.IntFlagSchema.getDefaultInstance()) + .build()) + .build()) + .setReason( + com.spotify.confidence.shaded.flags.resolver.v1.ResolveReason + .RESOLVE_REASON_MATCH) + .build()) + .setResolveToken(com.google.protobuf.ByteString.copyFromUtf8("token1")) + .build(); + streamObserver.onNext(response); + streamObserver.onCompleted(); + }); + + final FlagEvaluation evaluation = + confidence.withContext(SAMPLE_CONTEXT).getEvaluation("test-flag.myinteger", 0); + + assertThat(evaluation.getValue()).isEqualTo(400); + assertThat(evaluation.getVariant()).isEqualTo("flags/test-flag/variants/variant-1"); + assertThat(evaluation.getReason()).isEqualTo("RESOLVE_REASON_MATCH"); + assertThat(evaluation.getErrorType()).isEmpty(); + assertThat(evaluation.getErrorMessage()).isEmpty(); + } + @Test public void castingWithWrongType() { mockSampleResponse();