GraphQL\Tests\Language\VisitorTest::testAllowsEditingRootNodeOnEnterAndLeave PHP Method

testAllowsEditingRootNodeOnEnterAndLeave() public method

    public function testAllowsEditingRootNodeOnEnterAndLeave()
    {
        $ast = Parser::parse('{ a, b, c { a, b, c } }', ['noLocation' => true]);
        $definitions = $ast->definitions;
        $editedAst = Visitor::visit($ast, [NodeKind::DOCUMENT => ['enter' => function (DocumentNode $node) {
            $tmp = clone $node;
            $tmp->definitions = [];
            $tmp->didEnter = true;
            return $tmp;
        }, 'leave' => function (DocumentNode $node) use($definitions) {
            $tmp = clone $node;
            $node->definitions = $definitions;
            $node->didLeave = true;
        }]]);
        $this->assertNotEquals($ast, $editedAst);
        $tmp = $ast->cloneDeep();
        $tmp->didEnter = true;
        $tmp->didLeave = true;
        $this->assertEquals($tmp, $editedAst);
    }