File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed
Tests/GraphQLTests/TypeTests Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments