Class: GraphQL::Autotest::QueryGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/autotest/query_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(document:, arguments_fetcher:, max_depth:, skip_if:) ⇒ QueryGenerator

Returns a new instance of QueryGenerator.



20
21
22
23
24
25
# File 'lib/graphql/autotest/query_generator.rb', line 20

def initialize(document:, arguments_fetcher:, max_depth: , skip_if:)
  @document = document
  @arguments_fetcher = arguments_fetcher
  @max_depth = max_depth
  @skip_if = skip_if
end

Class Method Details

.from_file(path: nil, content: nil, **kw) ⇒ Object

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
# File 'lib/graphql/autotest/query_generator.rb', line 7

def self.from_file(path: nil, content: nil, **kw)
  raise ArgumentError, "path or content is required" if !path && !content

  content ||= File.read(path)
  document = GraphQL.parse(content)
  generate(document: document, **kw)
end

.generate(document:, arguments_fetcher: ArgumentsFetcher::DEFAULT, max_depth: 10, skip_if: -> (_field, **) { false }) ⇒ Object

See Runner#initialize for arguments documentation.



16
17
18
# File 'lib/graphql/autotest/query_generator.rb', line 16

def self.generate(document:, arguments_fetcher: ArgumentsFetcher::DEFAULT, max_depth: 10, skip_if: -> (_field, **) { false })
  self.new(document: document, arguments_fetcher: arguments_fetcher, max_depth: max_depth, skip_if: skip_if).generate
end

Instance Method Details

#generateObject



27
28
29
30
# File 'lib/graphql/autotest/query_generator.rb', line 27

def generate
  query_type = type_definition('Query')
  testable_fields(query_type)
end