#include "clar.h" #include "clar_test.h" #include #include static char *fixture; void test_input_objects__initialize(void) { global_test_counter++; } void test_input_objects__cleanup(void) { if (fixture != NULL) { free(fixture); } } void test_input_objects__inline(void) { fixture = read_fixture("input_objects.graphql"); GraphQLTypes* types = NULL; size_t types_len = 0; uint8_t err; err = gqlidl_parse_schema(fixture, &types, &types_len); cl_assert_equal_i(err, 0); cl_assert_equal_s(types[0].typename, "input_object"); cl_assert_equal_s("UpdateTopicsInput", types[0].input_object_type.name); cl_assert_equal_s("Autogenerated input type of UpdateTopics", types[0].input_object_type.description); cl_assert_equal_i(3, types[0].input_object_type.fields.length); cl_assert_equal_s("clientMutationId", types[0].input_object_type.fields.data[0].name); cl_assert_equal_s("A unique identifier for the client performing the mutation.", types[0].input_object_type.fields.data[0].description); cl_assert_equal_s("String", types[0].input_object_type.fields.data[0].type_info.name); cl_assert_equal_s("", types[0].input_object_type.fields.data[0].type_info.info); cl_assert_equal_s("repositoryId", types[0].input_object_type.fields.data[1].name); cl_assert_equal_s("The Node ID of the repository.", types[0].input_object_type.fields.data[1].description); cl_assert_equal_s("ID", types[0].input_object_type.fields.data[1].type_info.name); cl_assert_equal_s("!", types[0].input_object_type.fields.data[1].type_info.info); cl_assert_equal_s("topicNames", types[0].input_object_type.fields.data[2].name); cl_assert_equal_s("An array of topic names.", types[0].input_object_type.fields.data[2].description); cl_assert_equal_s("String", types[0].input_object_type.fields.data[2].type_info.name); cl_assert_equal_s("[!]!", types[0].input_object_type.fields.data[2].type_info.info); }