Skip to content

Commit 71f70de

Browse files
committed
fix: add test for ResolveHint logging
1 parent 1745767 commit 71f70de

File tree

3 files changed

+41
-7
lines changed

3 files changed

+41
-7
lines changed

sdk-java/pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,6 @@
1010
<artifactId>sdk-java</artifactId>
1111

1212
<dependencies>
13-
<dependency>
14-
<groupId>com.google.protobuf</groupId>
15-
<artifactId>protobuf-java-util</artifactId>
16-
<version>${protobuf.version}</version>
17-
<scope>test</scope>
18-
</dependency>
1913
<dependency>
2014
<groupId>io.grpc</groupId>
2115
<artifactId>grpc-protobuf</artifactId>
@@ -42,6 +36,12 @@
4236
<artifactId>proto-google-common-protos</artifactId>
4337
<version>${common.protos.version}</version>
4438
</dependency>
39+
<dependency>
40+
<groupId>ch.qos.logback</groupId>
41+
<artifactId>logback-classic</artifactId>
42+
<version>1.4.14</version>
43+
<scope>test</scope>
44+
</dependency>
4545
</dependencies>
4646

4747
<build>

sdk-java/src/main/java/com/spotify/confidence/Confidence.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ public void logResolveTesterHint(ResolvedFlag resolvedFlag) {
201201
final String clientKey = client().clientSecret;
202202
final String flag = resolvedFlag.getFlag();
203203
try {
204-
205204
final ResolveTesterLogging resolveTesterLogging =
206205
ResolveTesterLogging.newBuilder()
207206
.setClientKey(clientKey)

sdk-java/src/test/java/com/spotify/confidence/ConfidenceTest.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
import static org.junit.jupiter.api.Assertions.*;
44

5+
import ch.qos.logback.classic.Level;
6+
import ch.qos.logback.classic.Logger;
7+
import ch.qos.logback.classic.spi.ILoggingEvent;
8+
import ch.qos.logback.core.read.ListAppender;
59
import com.google.protobuf.Value;
610
import com.spotify.confidence.ConfidenceValue.Struct;
711
import com.spotify.confidence.shaded.flags.resolver.v1.ResolveFlagsResponse;
@@ -15,18 +19,33 @@
1519
import java.util.List;
1620
import java.util.Map;
1721
import java.util.concurrent.CompletableFuture;
22+
import org.junit.jupiter.api.AfterEach;
1823
import org.junit.jupiter.api.BeforeEach;
1924
import org.junit.jupiter.api.Test;
25+
import org.slf4j.LoggerFactory;
2026

2127
final class ConfidenceTest {
2228
private final FakeEventSenderEngine fakeEngine = new FakeEventSenderEngine(new FakeClock());
2329
private final ResolverClientTestUtils.FakeFlagResolverClient fakeFlagResolverClient =
2430
new ResolverClientTestUtils.FakeFlagResolverClient();
2531
private static Confidence confidence;
32+
private ListAppender<ILoggingEvent> listAppender;
33+
private Logger confidenceLogger;
2634

2735
@BeforeEach
2836
void beforeEach() {
2937
confidence = Confidence.create(fakeEngine, fakeFlagResolverClient, "clientKey");
38+
confidenceLogger = (Logger) LoggerFactory.getLogger(Confidence.class);
39+
40+
listAppender = new ListAppender<>();
41+
listAppender.start();
42+
// Add the appender to the logger
43+
confidenceLogger.addAppender(listAppender);
44+
}
45+
46+
@AfterEach
47+
void afterEach() {
48+
confidenceLogger.detachAppender(listAppender);
3049
}
3150

3251
@Test
@@ -259,6 +278,22 @@ void internalError() {
259278
evaluation.getErrorMessage().get().startsWith("Crashing while performing network call"));
260279
}
261280

281+
@Test
282+
void shouldLogResolverHint() {
283+
confidence
284+
.withContext(Map.of("my_context_value", ConfidenceValue.of(42)))
285+
.logResolveTesterHint(ResolvedFlag.newBuilder().setFlag("FlagName").build());
286+
final List<ILoggingEvent> loggingEvents = listAppender.list;
287+
assertTrue(loggingEvents.size() > 0, "No log message was captured.");
288+
final ILoggingEvent lastLogEvent = loggingEvents.get(loggingEvents.size() - 1);
289+
assertEquals(Level.DEBUG, lastLogEvent.getLevel()); // Or whatever level you expect
290+
assertEquals(
291+
"Check your flag evaluation for 'FlagName' by copy pasting the payload to the Resolve tester "
292+
+ "'ewogICJjbGllbnRLZXkiOiAiY2xpZW50S2V5IiwKICAiZmxhZyI6ICJGbGFnTmFtZSIsCiAgImN"
293+
+ "vbnRleHQiOiB7CiAgICAibXlfY29udGV4dF92YWx1ZSI6IDQyLjAKICB9Cn0='",
294+
lastLogEvent.getFormattedMessage());
295+
}
296+
262297
public static class FailingFlagResolverClient implements FlagResolverClient {
263298

264299
@Override

0 commit comments

Comments
 (0)