Class: GraphWeaver::Testing::Anonymizer

Inherits:
Object
  • Object
show all
Includes:
Selection
Defined in:
lib/graph_weaver/testing/cassette.rb

Overview

Rewrites a recorded response through the Values engine: same shape, fake values. Enums, booleans, __typename, and null positions are preserved; ids map consistently so relationships survive.

Instance Method Summary collapse

Methods included from Selection

#applies?, #each_field, #load_operation, #operation_root_type

Constructor Details

#initialize(schema:, seed: nil, mode: nil) ⇒ Anonymizer

Returns a new instance of Anonymizer.



157
158
159
160
# File 'lib/graph_weaver/testing/cassette.rb', line 157

def initialize(schema:, seed: nil, mode: nil)
  @schema = schema
  @values = Values.new(seed:, mode:)
end

Instance Method Details

#anonymize(query, data) ⇒ Object



162
163
164
165
166
# File 'lib/graph_weaver/testing/cassette.rb', line 162

def anonymize(query, data)
  operation = load_operation(query)

  object_value(operation_root_type(operation), operation.selections, data)
end