File tree 1 file changed +52
-0
lines changed
Tests/GraphQLTests/TypeTests
1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change @@ -157,4 +157,56 @@ class GraphQLSchemaTests: XCTestCase {
157
157
)
158
158
}
159
159
}
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
+ }
160
212
}
You can’t perform that action at this time.
0 commit comments