Simplify the way ApiTypesCreator is used

This commit is contained in:
Alberto Miedes Garcés
2017-01-27 13:13:19 +01:00
parent 620c83fb69
commit c52602e04b
5 changed files with 20 additions and 29 deletions

View File

@@ -1,11 +1,11 @@
require 'rails_helper'
describe GraphQL::ApiTypesCreator do
let(:api_types_creator) { GraphQL::ApiTypesCreator.new( {} ) }
let(:created_types) { {} }
describe "::create_type" do
it "creates fields for Int attributes" do
debate_type = api_types_creator.create_type(Debate, { id: :integer })
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { id: :integer }, created_types)
created_field = debate_type.fields['id']
expect(created_field).to be_a(GraphQL::Field)
@@ -14,7 +14,7 @@ describe GraphQL::ApiTypesCreator do
end
it "creates fields for String attributes" do
debate_type = api_types_creator.create_type(Debate, { title: :string })
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { title: :string }, created_types)
created_field = debate_type.fields['title']
expect(created_field).to be_a(GraphQL::Field)
@@ -23,8 +23,8 @@ describe GraphQL::ApiTypesCreator do
end
it "creates connections for :belongs_to associations" do
user_type = api_types_creator.create_type(User, { id: :integer })
debate_type = api_types_creator.create_type(Debate, { author: User })
user_type = GraphQL::ApiTypesCreator.create_type(User, { id: :integer }, created_types)
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { author: User }, created_types)
connection = debate_type.fields['author']
@@ -34,8 +34,8 @@ describe GraphQL::ApiTypesCreator do
end
it "creates connections for :has_one associations" do
user_type = api_types_creator.create_type(User, { organization: Organization })
organization_type = api_types_creator.create_type(Organization, { id: :integer })
user_type = GraphQL::ApiTypesCreator.create_type(User, { organization: Organization }, created_types)
organization_type = GraphQL::ApiTypesCreator.create_type(Organization, { id: :integer }, created_types)
connection = user_type.fields['organization']
@@ -45,8 +45,8 @@ describe GraphQL::ApiTypesCreator do
end
it "creates connections for :has_many associations" do
comment_type = api_types_creator.create_type(Comment, { id: :integer })
debate_type = api_types_creator.create_type(Debate, { comments: [Comment] })
comment_type = GraphQL::ApiTypesCreator.create_type(Comment, { id: :integer }, created_types)
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { comments: [Comment] }, created_types)
connection = debate_type.fields['comments']

View File

@@ -7,7 +7,7 @@ describe GraphQL::QueryTypeCreator do
Proposal => { fields: { id: :integer, title: :string } }
}
end
let(:api_types) { GraphQL::ApiTypesCreator.new(api_type_definitions).create }
let(:api_types) { GraphQL::ApiTypesCreator.create(api_type_definitions) }
describe "::create" do
let(:query_type) { GraphQL::QueryTypeCreator.create(api_types) }

View File

@@ -1,6 +1,6 @@
require 'rails_helper'
api_types = GraphQL::ApiTypesCreator.new(API_TYPE_DEFINITIONS).create
api_types = GraphQL::ApiTypesCreator.create(API_TYPE_DEFINITIONS)
query_type = GraphQL::QueryTypeCreator.create(api_types)
ConsulSchema = GraphQL::Schema.define do
query query_type