From ab9959e2d5665c54f35ff042b7761ad5f1bce1bf Mon Sep 17 00:00:00 2001 From: Maarten van Vliet Date: Sat, 16 Jan 2021 14:28:10 +0100 Subject: [PATCH] Render null default values in SDL --- lib/absinthe/language/input_value_definition.ex | 3 +++ lib/absinthe/schema/notation/sdl_render.ex | 3 +++ test/absinthe/schema/sdl_render_test.exs | 1 + 3 files changed, 7 insertions(+) diff --git a/lib/absinthe/language/input_value_definition.ex b/lib/absinthe/language/input_value_definition.ex index 21aa327699..143827dba8 100644 --- a/lib/absinthe/language/input_value_definition.ex +++ b/lib/absinthe/language/input_value_definition.ex @@ -48,6 +48,9 @@ defmodule Absinthe.Language.InputValueDefinition do defp to_term(%Language.ListValue{values: values}), do: Enum.map(values, &to_term/1) + defp to_term(%Language.NullValue{}), + do: nil + defp to_term(%Language.ObjectValue{fields: fields}), do: Enum.into(fields, %{}, &{String.to_atom(&1.name), to_term(&1.value)}) diff --git a/lib/absinthe/schema/notation/sdl_render.ex b/lib/absinthe/schema/notation/sdl_render.ex index c35512da53..b7e1a33a21 100644 --- a/lib/absinthe/schema/notation/sdl_render.ex +++ b/lib/absinthe/schema/notation/sdl_render.ex @@ -408,6 +408,9 @@ defmodule Absinthe.Schema.Notation.SDL.Render do defp render_value(%Blueprint.Input.Value{raw: raw}), do: render_value(raw) + defp render_value(%Blueprint.Input.Null{}), + do: "null" + defp render_value(%Blueprint.Input.Object{fields: fields}) do default_fields = Enum.map(fields, &render_value/1) concat(["{", join(default_fields, ", "), "}"]) diff --git a/test/absinthe/schema/sdl_render_test.exs b/test/absinthe/schema/sdl_render_test.exs index cd97d56ae2..669e7f6266 100644 --- a/test/absinthe/schema/sdl_render_test.exs +++ b/test/absinthe/schema/sdl_render_test.exs @@ -53,6 +53,7 @@ defmodule Absinthe.Schema.SdlRenderTest do defaultInputArg(input: ComplexInput = {foo: "bar"}): String defaultListArg(things: [String] = ["ThisThing"]): [String] defaultEnumArg(category: Category = NEWS): Category + defaultNullStringArg(name: String = null): String animal: Animal }