Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
7694618
WIP: Created execution result classes for incremental delivery
felipe-gdr-atlassian Dec 20, 2023
ae52efd
Merge branch 'defer-support-in-enf' into defer-support-execution
felipe-gdr-atlassian Dec 20, 2023
acb00a5
Merge branch 'defer-support-in-enf' into defer-support-execution
felipe-gdr-atlassian Dec 20, 2023
7aa8c23
WIP
felipe-gdr-atlassian Jan 2, 2024
10b0499
Merge branch 'defer-support-in-enf' into defer-support-execution
felipe-gdr-atlassian Jan 8, 2024
0025495
WIP
felipe-gdr-atlassian Jan 8, 2024
b02efd8
Revert "WIP"
felipe-gdr-atlassian Jan 9, 2024
691d138
Merge branch 'defer-support-in-enf' into defer-support-execution
felipe-gdr-atlassian Jan 9, 2024
cbd9b63
Fixes on IncrementalItem hierarchy
felipe-gdr-atlassian Jan 10, 2024
40b7dfa
Merge branch 'master' into defer-support-execution
felipe-gdr-atlassian Jan 11, 2024
ceac689
Adjustments and plenty of Javadoc
felipe-gdr-atlassian Jan 11, 2024
a8f7906
Add unit test for sanity check
felipe-gdr-atlassian Jan 11, 2024
6b52b02
Fix Javadoc
felipe-gdr-atlassian Jan 11, 2024
d13b509
Minor adjustment in test class
felipe-gdr-atlassian Jan 11, 2024
291cfbf
Reverts both merge commits that deleted the old defer stuff.
felipe-gdr-atlassian Jan 12, 2024
c7088b1
Fix compilation errors
felipe-gdr-atlassian Jan 15, 2024
e86286e
WIP: hacky defer is working, some new tests for basic stuff, but a lo…
felipe-gdr-atlassian Jan 18, 2024
36d0330
Fixed a race condition and added more tests
felipe-gdr-atlassian Jan 19, 2024
348515d
Memoize field value resolution
felipe-gdr-atlassian Jan 19, 2024
ea9726a
Remove code
felipe-gdr-atlassian Jan 19, 2024
d03c8db
Remove unnecessary code and cover more edge cases
felipe-gdr-atlassian Jan 23, 2024
ca51dcb
Add more tests for DeferContext
felipe-gdr-atlassian Jan 23, 2024
85ac363
Create IncrementalCall interface and add type abstraction
felipe-gdr-atlassian Jan 23, 2024
1c60c37
Implement error handling in the defer execution code
felipe-gdr-atlassian Jan 25, 2024
276c872
Add one more test case
felipe-gdr-atlassian Jan 25, 2024
a5aa0fd
Add test for defer in list items
felipe-gdr-atlassian Jan 29, 2024
f43849f
Remove unnecessary test code
felipe-gdr-atlassian Jan 29, 2024
98554dc
Javadoc
felipe-gdr-atlassian Jan 29, 2024
ccb7e70
Refactor IncrementalUtils to remove duplicated code
felipe-gdr-atlassian Jan 29, 2024
e0540d9
WIP
felipe-gdr-atlassian Feb 1, 2024
f912440
Fix all unit tests and start cleaning up
felipe-gdr-atlassian Feb 2, 2024
28d98d4
Simplify instrumentation code for deferred field execution
felipe-gdr-atlassian Feb 2, 2024
8cc3d13
Merge branch 'master' into defer-execution-2024
felipe-gdr-atlassian Feb 2, 2024
07bd477
Rename some things defer -> incremental
felipe-gdr-atlassian Feb 2, 2024
934f88f
Remove code duplication
felipe-gdr-atlassian Feb 2, 2024
52de911
Various small adjustments in preparation to send the PR for review
felipe-gdr-atlassian Feb 2, 2024
f1e03a6
Remove unused import
felipe-gdr-atlassian Feb 2, 2024
ef671d0
PR feedback
felipe-gdr-atlassian Feb 5, 2024
32811eb
Merge branch 'master' into defer-execution-2024
felipe-gdr-atlassian Feb 6, 2024
c6d830c
Undo renaming to NormalizedDeferExecution: will be done in another PR
felipe-gdr-atlassian Feb 7, 2024
fe710a9
Undo refactoring around IncrementalNodes: will be done on future PR
felipe-gdr-atlassian Feb 7, 2024
61ca8d1
Refactoring method to receive individual parameters instead of object
felipe-gdr-atlassian Feb 7, 2024
864bf2e
Replace synchronized with runBlocked
felipe-gdr-atlassian Feb 7, 2024
4db2122
Fix groovy syntax
felipe-gdr-atlassian Feb 9, 2024
89e741d
Move gate mechanism from ExecutionInput to GraphQLContext
felipe-gdr-atlassian Feb 9, 2024
5900e9c
Rename DelayedIncrementalExecutionResult -> DelayedIncrementalPartial…
felipe-gdr-atlassian Feb 9, 2024
6fb8e74
(temporarily) Remove support for using Data loader to fetch deferred …
felipe-gdr-atlassian Feb 9, 2024
d87a6df
Rename DeferredCall -> DeferredFragmentCall
felipe-gdr-atlassian Feb 9, 2024
bfafd99
Move DeferredExecutionSupport into its own class file
felipe-gdr-atlassian Feb 9, 2024
e96eec5
Merge branch 'master' into defer-execution-2024
felipe-gdr-atlassian Feb 9, 2024
00a1862
Adjustments after merging
felipe-gdr-atlassian Feb 9, 2024
a801d20
Move ENABLE_INCREMENTAL_SUPPORT to @ExperimentalApi
felipe-gdr-atlassian Feb 12, 2024
99c5d0f
Remove unnecessary isEmpty check
felipe-gdr-atlassian Feb 12, 2024
b126baf
Add test with label having 'null' value
felipe-gdr-atlassian Feb 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add one more test case
  • Loading branch information
felipe-gdr-atlassian committed Jan 25, 2024
commit 276c8723dcd24b8c2290d3ad4716bad760cb753d
Original file line number Diff line number Diff line change
Expand Up @@ -1178,7 +1178,7 @@ class DeferExecutionSupportIntegrationTest extends Specification {
]
}

def "can handle non nullable error"() {
def "can handle non nullable error in one of the defer calls"() {
def query = """
query {
post {
Expand Down Expand Up @@ -1237,6 +1237,51 @@ class DeferExecutionSupportIntegrationTest extends Specification {
]
}

def "can handle non nullable error in the initial result"() {
def query = """
query {
post {
id
nonNullableError
... @defer {
summary
}
}
}
"""

when:
def initialResult = executeQuery(query)

then:
initialResult.toSpecification() == [
data : [post: null],
errors : [
[message : "The field at path '/post/nonNullableError' was declared as a non null type, but the code involved in retrieving data has wrongly returned a null value. The graphql specification requires that the parent field be set to null, or if that is non nullable that it bubble up null to its parent and so on. The non-nullable type is 'String' within parent type 'Post'",
path : ["post", "nonNullableError"],
extensions: [classification: "NullValueInNonNullableField"]
]
],
hasNext: true
]

when:
def incrementalResults = getIncrementalResults(initialResult)

then:
incrementalResults == [
[
hasNext : false,
incremental: [
[
path: ["post"],
data: [summary: "A summary"],
]
]
]
]
}

private ExecutionResult executeQuery(String query) {
return this.executeQuery(query, true, [:])
}
Expand Down