module GraphQL::Compatibility::LazyExecutionSpecification

def test_it_resolves_lazy_values

def test_it_resolves_lazy_values
  pushes = []
  query_str = %|
  {
    p1: push(value: 1) {
      value
    }
    p2: push(value: 2) {
      push(value: 3) {
        value
      }
    }
    p3: push(value: 4) {
      push(value: 5) {
        value
      }
    }
  }
  |
  res = self.class.lazy_schema.execute(query_str, context: {pushes: pushes})
  expected_data = {
    "p1"=>{"value"=>1},
    "p2"=>{"push"=>{"value"=>3}},
    "p3"=>{"push"=>{"value"=>5}},
  }
  assert_equal expected_data, res["data"]
  expected_pushes = [
    [1,2,4], # first level
    [3,5], # second level
  ]
  assert_equal expected_pushes, pushes
end