From 38c808d0b583a4461b7cf3c4ce67280efb19edbc Mon Sep 17 00:00:00 2001 From: James Bellenger Date: Fri, 23 Aug 2024 10:20:33 -0700 Subject: [PATCH 1/2] . --- .../incremental/IncrementalExecutionResultImpl.java | 8 ++++++++ .../incremental/IncrementalExecutionResultTest.groovy | 11 +++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java b/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java index 77b05c6fe5..704d1b67cc 100644 --- a/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java +++ b/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java @@ -10,6 +10,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.function.Consumer; import java.util.stream.Collectors; @ExperimentalApi @@ -52,6 +53,13 @@ public static Builder fromExecutionResult(ExecutionResult executionResult) { return new Builder().from(executionResult); } + @Override + public IncrementalExecutionResult transform(Consumer> builderConsumer) { + var builder = fromExecutionResult(this); + builderConsumer.accept(builder); + return builder.build(); + } + @Override public Map toSpecification() { Map map = new LinkedHashMap<>(super.toSpecification()); diff --git a/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy b/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy index 9bf954cb63..d4661740b9 100644 --- a/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy +++ b/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy @@ -1,9 +1,7 @@ package graphql.incremental import graphql.execution.ResultPath -import groovy.json.JsonOutput import io.reactivex.Flowable -import org.reactivestreams.Publisher import spock.lang.Specification import static graphql.incremental.DeferPayload.newDeferredItem @@ -120,4 +118,13 @@ class IncrementalExecutionResultTest extends Specification { newIncrementalExecutionResult.hasNext() == incrementalExecutionResult.hasNext() newIncrementalExecutionResult.toSpecification() == incrementalExecutionResult.toSpecification() } + + def "transform returns IncrementalExecutionResult"() { + when: + def initial = newIncrementalExecutionResult().build() + + then: + def transformed = initial.transform { } + transformed instanceof IncrementalExecutionResult + } } From 00774a9a5cd14a4ea515ea72c23e3a98b0efe6b0 Mon Sep 17 00:00:00 2001 From: James Bellenger Date: Fri, 23 Aug 2024 12:52:47 -0700 Subject: [PATCH 2/2] tweaks --- .../incremental/IncrementalExecutionResultTest.groovy | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy b/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy index d4661740b9..b40bfd8712 100644 --- a/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy +++ b/src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy @@ -121,10 +121,15 @@ class IncrementalExecutionResultTest extends Specification { def "transform returns IncrementalExecutionResult"() { when: - def initial = newIncrementalExecutionResult().build() + def initial = newIncrementalExecutionResult().hasNext(true).build() then: - def transformed = initial.transform { } + def transformed = initial.transform { b -> + b.addExtension("ext-key", "ext-value") + b.hasNext(false) + } transformed instanceof IncrementalExecutionResult + transformed.extensions == ["ext-key": "ext-value"] + transformed.hasNext == false } }