Skip to content

Commit 283cc36

Browse files
test: Adds type reference resolution tests
1 parent 080cffd commit 283cc36

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

Tests/GraphQLTests/TypeTests/GraphQLSchemaTests.swift

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,56 @@ class GraphQLSchemaTests: XCTestCase {
157157
)
158158
}
159159
}
160+
161+
func testAssertSchemaCircularReference() throws {
162+
let object1 = try GraphQLObjectType(
163+
name: "Object1",
164+
fields: [
165+
"object2": GraphQLField(
166+
type: GraphQLTypeReference("Object2")
167+
),
168+
]
169+
)
170+
let object2 = try GraphQLObjectType(
171+
name: "Object2",
172+
fields: [
173+
"object1": GraphQLField(
174+
type: GraphQLTypeReference("Object1")
175+
),
176+
]
177+
)
178+
let query = try GraphQLObjectType(
179+
name: "Query",
180+
fields: [
181+
"object1": GraphQLField(type: GraphQLTypeReference("Object1")),
182+
"object2": GraphQLField(type: GraphQLTypeReference("Object2")),
183+
]
184+
)
185+
186+
let schema = try GraphQLSchema(query: query, types: [object1, object2])
187+
for (_, graphQLNamedType) in schema.typeMap {
188+
XCTAssertFalse(graphQLNamedType is GraphQLTypeReference)
189+
}
190+
}
191+
192+
func testAssertSchemaFailsWhenObjectNotDefined() throws {
193+
let object1 = try GraphQLObjectType(
194+
name: "Object1",
195+
fields: [
196+
"object2": GraphQLField(
197+
type: GraphQLTypeReference("Object2")
198+
),
199+
]
200+
)
201+
let query = try GraphQLObjectType(
202+
name: "Query",
203+
fields: [
204+
"object1": GraphQLField(type: GraphQLTypeReference("Object1")),
205+
]
206+
)
207+
208+
XCTAssertThrowsError(
209+
_ = try GraphQLSchema(query: query, types: [object1])
210+
)
211+
}
160212
}

0 commit comments

Comments
 (0)