                 }
                 """,
                 eventLoopGroup: group
+            ).wait(),
+            GraphQLResult(data: [
+                "echo": [
+                    "field1": "value1",
+                    "field2": nil,
+                ]
+            ])
+        )
+        
+        // Test in variables
+        XCTAssertEqual(
+            try graphql(
+                schema: schema,
+                request: """
+                query echo($input: EchoInput) {
+                    echo(input: $input) {
+                        field1
+                        field2
+                    }
+                }
+                """,
+                eventLoopGroup: group,
+                variableValues: [
+                    "input": [
+                        "field1": "value1"
+                    ]
+                ]
             ).wait(),
             GraphQLResult(data: [
                 "echo": [

            XCTAssertNoThrow(try group.syncShutdownGracefully())
        }
        
        XCTAssertEqual(
            try graphql(
                schema: schema,

                ]
            ])
        )
        // Null literal with default gets null
        XCTAssertEqual(
            try graphql(
                schema: schema,
                request: """
                {
                    echo(input:{
                        field1: "value1"
                        field2: null
                    }) {
                        field1
                        field2
                    }
                }
                """,
                eventLoopGroup: group
            ).wait(),
            GraphQLResult(data: [
                "echo": [
                    "field1": "value1",
                    "field2": nil,
                ]
            ])
        )
        
        // Test in variable
        // Undefined with default gets default
        XCTAssertEqual(
            try graphql(
                schema: schema,
                request: """
                query echo($input: EchoInput) {
                    echo(input: $input) {
                        field1
                        field2
                    }
                }
                """,
                eventLoopGroup: group,
                variableValues: [
                    "input": [
                        "field1": "value1"
                    ]
                ]
            ).wait(),
            GraphQLResult(data: [
                "echo": [
                    "field1": "value1",
                    "field2": "value2",
                ]
            ])
        )
        // Null literal with default gets null
        XCTAssertEqual(
            try graphql(
                schema: schema,
                request: """
                query echo($input: EchoInput) {
                    echo(input: $input) {
                        field1
                        field2
                    }
                }
                """,
                eventLoopGroup: group,
                variableValues: [
                    "input": [
                        "field1": "value1",
                        "field2": .null
                    ]
                ]
            ).wait(),
            GraphQLResult(data: [
                "echo": [
                    "field1": "value1",
                    "field2": nil,
                ]
            ])
        )
    }
}
