diff --git a/lib/graphql/client.rb b/lib/graphql/client.rb index 6fea76d..b8d01a9 100644 --- a/lib/graphql/client.rb +++ b/lib/graphql/client.rb @@ -54,6 +54,8 @@ def self.load_schema(schema) when String if schema.end_with?(".json") && File.exist?(schema) load_schema(File.read(schema)) + elsif (schema.end_with?(".graphql", ".graphqls")) && File.exist?(schema) + GraphQL::Schema.from_definition(schema) elsif schema =~ /\A\s*{/ load_schema(JSON.parse(schema, freeze: true)) end diff --git a/test/test_client_schema.rb b/test/test_client_schema.rb index bb8d7fb..bf467a3 100644 --- a/test/test_client_schema.rb +++ b/test/test_client_schema.rb @@ -42,6 +42,12 @@ def test_load_schema_from_json_string assert_equal "AwesomeQuery", schema.query.graphql_name end + def test_load_schema_from_definition_string + definition = Schema.to_definition + schema = GraphQL::Client.load_schema(definition) + assert_equal "AwesomeQuery", schema.query.graphql_name + end + def test_load_schema_ignores_missing_path refute GraphQL::Client.load_schema("#{__dir__}/missing-schema.json") end