def test_extension_argument_parsing():
    """Check that kwargs passed to field extensions have been converted into
    Strawberry types.
    """

    @strawberry.input
    class StringInput:
        some_input_value: str = strawberry.field(description="foo")

    field_kwargs = {}

    class CustomExtension(FieldExtension):
        def resolve(
            self,
            next_: Callable[..., Any],
            source: Any,
            info: strawberry.Info,
            **kwargs: Any,
        ):
            nonlocal field_kwargs
            field_kwargs = kwargs
            return next_(source, info, **kwargs)

    @strawberry.type
    class Query:
        @strawberry.field(extensions=[CustomExtension()])
        def string(self, some_input: StringInput) -> str:
            return f"This is a test!! {some_input.some_input_value}"

    schema = strawberry.Schema(query=Query)
    query = 'query { string(someInput: { someInputValue: "foo" }) }'

    result = schema.execute_sync(query)
    assert result.data, result.errors
    assert result.data["string"] == "This is a test!! foo"

    assert isinstance(field_kwargs["some_input"], StringInput)
    input_value = field_kwargs["some_input"]
    assert input_value.some_input_value == "foo"
    assert input_value.__strawberry_definition__.is_input is True
Check that kwargs passed to field extensions have been converted into
    Strawberry types.
    
tests/schema/extensions/test_field_extensions.py