Sha256: 9f2c1e28865eb137597daa9453b150be6b47ab4a1fbf1e734a76bd6c83e8a84c

Contents?: true

Size: 1.51 KB

Versions: 5

Compression:

Stored size: 1.51 KB

Contents

# frozen_string_literal: true
require "spec_helper"
require "generators/graphql/union_generator"

class GraphQLGeneratorsUnionGeneratorTest < BaseGeneratorTest
  tests Graphql::Generators::UnionGenerator

  test "it generates a union with possible types" do
    commands = [
      # GraphQL-style:
      ["WingedCreature", "Insect", "Bird"],
      # Ruby-style:
      ["Types::WingedCreatureType", "Types::InsectType", "Types::BirdType"],
    ]

    expected_content = <<-RUBY
class Types::WingedCreatureType < Types::BaseUnion
  possible_types [Types::InsectType, Types::BirdType]
end
RUBY

    commands.each do |c|
      prepare_destination
      run_generator(c)
      assert_file "app/graphql/types/winged_creature_type.rb", expected_content
    end
  end

  test "it works with no possible types" do
    commands = [
      # GraphQL-style:
      ["WingedCreature"],
      # Ruby-style:
      ["Types::WingedCreatureType"],
    ]

    expected_content = <<-RUBY
class Types::WingedCreatureType < Types::BaseUnion
end
RUBY

    commands.each do |c|
      prepare_destination
      run_generator(c)
      assert_file "app/graphql/types/winged_creature_type.rb", expected_content
    end
  end

  test "it accepts a user-specified directory" do
    command = ["WingedCreature", "--directory", "app/mydirectory"]

    expected_content = <<-RUBY
class Types::WingedCreatureType < Types::BaseUnion
end
RUBY

    prepare_destination
    run_generator(command)
    assert_file "app/mydirectory/types/winged_creature_type.rb", expected_content
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
graphql-1.8.6 spec/generators/graphql/union_generator_spec.rb
graphql-1.8.5 spec/generators/graphql/union_generator_spec.rb
graphql-1.8.4 spec/generators/graphql/union_generator_spec.rb
graphql-1.8.3 spec/generators/graphql/union_generator_spec.rb
graphql-1.8.2 spec/generators/graphql/union_generator_spec.rb