1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
# frozen_string_literal: true
require "spec_helper"
require "generators/graphql/interface_generator"
class GraphQLGeneratorsInterfaceGeneratorTest < BaseGeneratorTest
tests Graphql::Generators::InterfaceGenerator
test "it generates fields with types" do
commands = [
# GraphQL-style:
["Bird", "wingspan:Int!", "foliage:[Color]"],
# Ruby-style:
["BirdType", "wingspan:Integer!", "foliage:[Types::ColorType]"],
# Mixed
["BirdType", "wingspan:!Int", "foliage:[Color]"],
]
expected_content = <<-RUBY
# frozen_string_literal: true
module Types
module BirdType
include Types::BaseInterface
field :wingspan, Integer, null: false
field :foliage, [Types::ColorType]
end
end
RUBY
commands.each do |c|
prepare_destination
run_generator(c)
assert_file "app/graphql/types/bird_type.rb", expected_content
end
end
test "it generates fields with namespaced types" do
commands = [
# GraphQL-style:
["animals/Bird", "wingspan:Int!", "foliage:[Color]"],
# Ruby-style:
["animals/BirdType", "wingspan:Integer!", "foliage:[Types::ColorType]"],
# Mixed
["animals/BirdType", "wingspan:!Int", "foliage:[Color]"],
].map { |c| c + ["--namespaced-types"]}
expected_content = <<-RUBY
# frozen_string_literal: true
module Types
module Interfaces::Animals::BirdType
include Types::BaseInterface
field :wingspan, Integer, null: false
field :foliage, [Types::ColorType]
end
end
RUBY
commands.each do |c|
prepare_destination
run_generator(c)
assert_file "app/graphql/types/interfaces/animals/bird_type.rb", expected_content
end
end
end
|