diff --git a/README.md b/README.md index d1bc70ead2525b4de16383e2acc084ead46051c9..faac2b29804b78f8c6d13e439ceec76132e98792 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,10 @@ by granting the `access any webform configuration` permission. description elements { ... on WebformElement { - key - type + metadata { + key + type + } } ... on WebformElementWebformActions { submitLabel @@ -124,9 +126,11 @@ by granting the `access any webform configuration` permission. } } ... on WebformElementWebformTermSelect { - title - description - multiple + metadata { + title + description + multiple + } options(depth: 1) { value title diff --git a/src/Plugin/GraphQL/SchemaExtension/WebformExtension.php b/src/Plugin/GraphQL/SchemaExtension/WebformExtension.php index 9c8f06b321bb851bc550ce246c2fa93a29690f46..a39133ceda9bf69037c99c641e05c7c8125b2da7 100644 --- a/src/Plugin/GraphQL/SchemaExtension/WebformExtension.php +++ b/src/Plugin/GraphQL/SchemaExtension/WebformExtension.php @@ -137,15 +137,20 @@ class WebformExtension extends SdlSchemaExtensionPluginBase { ->map('id', $builder->fromArgument('id')) ); - $registry->addFieldResolver('WebformElement', 'key', $builder->callback( + // Expose the metadata of the webform element. + $registry->addFieldResolver('WebformElement', 'metadata', $builder->callback( + static fn (array $value): array => $value + )); + + $registry->addFieldResolver('WebformElementMetadata', 'key', $builder->callback( static fn (array $value): string => $value['#webform_key'] ?? '' )); - $registry->addFieldResolver('WebformElement', 'type', $builder->callback( + $registry->addFieldResolver('WebformElementMetadata', 'type', $builder->callback( static fn (array $value): string => $value['#webform_plugin_id'] ?? '' )); - $registry->addFieldResolver('WebformElement', 'name', $builder->callback( + $registry->addFieldResolver('WebformElementMetadata', 'name', $builder->callback( static function ($value) { $name = $value['#name'] ?? ''; // When an element can be multiple, we remove the nested name of the @@ -155,12 +160,12 @@ class WebformExtension extends SdlSchemaExtensionPluginBase { } )); - $registry->addFieldResolver('WebformElement', 'element', $builder->callback( + $registry->addFieldResolver('WebformElementMetadata', 'element', $builder->callback( static fn (array $value): array => $value )); $typeFields = [ - 'WebformElement' => [ + 'WebformElementMetadata' => [ 'title' => 'string', 'description' => 'string', 'multiple' => 'int', @@ -195,7 +200,7 @@ class WebformExtension extends SdlSchemaExtensionPluginBase { } // Expose information in case the field is required. - $registry->addFieldResolver('WebformElement', 'required', $builder->callback( + $registry->addFieldResolver('WebformElementMetadata', 'required', $builder->callback( static fn (array $value): ?array => $value['#required'] ? $value : NULL )); diff --git a/src/WebformSchemaBuilder.php b/src/WebformSchemaBuilder.php index 6885b07b225c7a01a8ac4e6c9ba4308c16e60705..20d278a67ff8a9c5f9d994555db3d12c99f1e009 100644 --- a/src/WebformSchemaBuilder.php +++ b/src/WebformSchemaBuilder.php @@ -54,6 +54,18 @@ class WebformSchemaBuilder { ], ]); + $this->types['WebformElementMetadata'] = new ObjectType([ + 'name' => 'WebformElementMetadata', + 'fields' => [ + 'key' => $this->type(Type::nonNull(Type::string()), 'The key of the element.'), + 'type' => $this->type(Type::nonNull(Type::string()), 'The element type.'), + 'title' => $this->type(Type::string(), ''), + 'description' => $this->type(Type::string(), ''), + 'multiple' => $this->type(Type::int(), 'The number of values that can be entered into the element. Unlimited if 0.'), + 'required' => $this->types['WebformRequiredElement'], + ], + ]); + $this->types['WebformElement'] = new InterfaceType([ 'name' => 'WebformElement', 'fields' => $this->getElementDefinition(), @@ -315,12 +327,7 @@ class WebformSchemaBuilder { */ protected function getElementDefinition(): array { return [ - 'required' => $this->types['WebformRequiredElement'], - 'key' => $this->type(Type::nonNull(Type::string()), 'The key of the element.'), - 'type' => $this->type(Type::nonNull(Type::string()), 'The element type.'), - 'title' => $this->type(Type::string(), ''), - 'description' => $this->type(Type::string(), ''), - 'multiple' => $this->type(Type::int(), 'The number of values that can be entered into the element. Unlimited if 0.'), + 'metadata' => fn () => $this->types['WebformElementMetadata'], ]; } diff --git a/tests/queries/actions.gql b/tests/queries/actions.gql index c9dbd0e663a316e0d64b54e71e5e3ec2ef74f1a4..9513ddcde62716bdba676da0c02f9b0f28807594 100644 --- a/tests/queries/actions.gql +++ b/tests/queries/actions.gql @@ -1,9 +1,12 @@ fragment webformElement on WebformElementWebformActions { __typename submitLabel - key - type - title + metadata { + __typename + key + type + title + } } fragment webform on Webform { diff --git a/tests/queries/checkboxes.gql b/tests/queries/checkboxes.gql index 99948414a36f5f72a9e4c74fd242deb3d864ed78..886f62a9d97ff394b822a5dc3eb628e4e59d3547 100644 --- a/tests/queries/checkboxes.gql +++ b/tests/queries/checkboxes.gql @@ -6,9 +6,11 @@ fragment webformElementOption on WebformElementOption { fragment webformElementCheckboxes on WebformElementCheckboxes { __typename - key - title - description + metadata { + key + title + description + } options { ...webformElementOption } diff --git a/tests/queries/fieldset.gql b/tests/queries/fieldset.gql index a6b0f5da9d1d4775fc64f666903a0732b5add3f0..e25f9d2699341b42d8761ec934008f758aaa26b5 100644 --- a/tests/queries/fieldset.gql +++ b/tests/queries/fieldset.gql @@ -1,11 +1,15 @@ fragment fieldsets on WebformElementFieldset { __typename - key - type - elements { + metadata { key type } + elements { + metadata { + key + type + } + } } query webform($id: String!) { diff --git a/tests/queries/flexbox.gql b/tests/queries/flexbox.gql index 98aa41436a1467535b9ba22481c23e82c2c674ea..0007113886a5d38f284f3d7d3e967f4d52a9b3a8 100644 --- a/tests/queries/flexbox.gql +++ b/tests/queries/flexbox.gql @@ -1,10 +1,14 @@ fragment flexboxes on WebformElementWebformFlexbox { __typename - key - type + metadata { + key + type + } alignItems elements { - key + metadata { + key + } } } diff --git a/tests/queries/managed_file.gql b/tests/queries/managed_file.gql index f1ff9a3fefdafe818216eb3a47beab321a16d096..43f0dc22d32907b34146b947682e9a21886fa415 100644 --- a/tests/queries/managed_file.gql +++ b/tests/queries/managed_file.gql @@ -1,9 +1,12 @@ fragment webformElement on WebformElement { __typename + metadata { + __typename key type title description + } } fragment webformElementManagedFileBase on WebformElementManagedFileBase { diff --git a/tests/queries/markup.gql b/tests/queries/markup.gql index 27af61eae67f30cca31f1903157b3149bc597edc..670f472d857c1393f27a8309c4788edb803f558c 100644 --- a/tests/queries/markup.gql +++ b/tests/queries/markup.gql @@ -2,6 +2,11 @@ fragment webformElementMarkup on WebformElementMarkupBase { __typename markup displayOn + ... on WebformElement { + metadata { + key + } + } } fragment webformElement on WebformElement { diff --git a/tests/queries/radios.gql b/tests/queries/radios.gql index 449df7440bbad9ca86d7a5e684c3eef2ed393d06..cfda96e87a1f75c40c5cc463fa6a4c787adeeb3e 100644 --- a/tests/queries/radios.gql +++ b/tests/queries/radios.gql @@ -7,12 +7,15 @@ fragment webformElementOption on WebformElementOption { fragment webformElementRadios on WebformElementRadios { __typename - key - type - title - description - required { - message + metadata { + key + type + title + description + required { + __typename + message + } } options { ...webformElementOption diff --git a/tests/queries/required.gql b/tests/queries/required.gql index eb1ea4e7c7a7a8f03f60913a54b9950ec8449100..36b6beccb5e70801c321d505f0ff78163df551e2 100644 --- a/tests/queries/required.gql +++ b/tests/queries/required.gql @@ -6,8 +6,10 @@ query webform($id: String!) { form: webformById(id: $id) { title elements { - required { - ...required + metadata { + required { + ...required + } } } } diff --git a/tests/queries/select.gql b/tests/queries/select.gql index 718ed43d47f8b12aa2558927114b325ed946b80e..75cc5ac4c1596e7806d4a439aaf920b492190839 100644 --- a/tests/queries/select.gql +++ b/tests/queries/select.gql @@ -6,9 +6,11 @@ fragment webformElementOption on WebformElementOption { fragment webformElementSelect on WebformElementSelect { __typename - key - title - description + metadata { + key + title + description + } options { ...webformElementOption } diff --git a/tests/queries/term_select.gql b/tests/queries/term_select.gql index 259bb51e1f2ad9d2bc317a99bcf4ac99ce165708..7b85fc1ed3b74296b1357c67ebdfa00a06dd1d86 100644 --- a/tests/queries/term_select.gql +++ b/tests/queries/term_select.gql @@ -1,10 +1,12 @@ fragment webformElementTermSelect on WebformElementWebformTermSelect { __typename - key - type - title - description - multiple + metadata { + key + type + title + description + multiple + } options(depth: $depth) { title } diff --git a/tests/queries/textarea.gql b/tests/queries/textarea.gql index 895e244d6d3dfe34580a30cce1ffbd2393076d16..8947980c62d9c6da6cd22e5b215cc7418cf0b86e 100644 --- a/tests/queries/textarea.gql +++ b/tests/queries/textarea.gql @@ -6,12 +6,14 @@ fragment webformElementValidationPattern on WebformElementValidationPattern { fragment webformElementTextarea on WebformElementTextarea { __typename - key - type - title - description - required { - message + metadata { + key + type + title + description + required { + message + } } readonly size diff --git a/tests/queries/textfield.gql b/tests/queries/textfield.gql index c74768e14715a29d126ab81369c100348c7aa820..ee6174c7619a1c319c73445c93998294d9d51261 100644 --- a/tests/queries/textfield.gql +++ b/tests/queries/textfield.gql @@ -1,11 +1,13 @@ fragment webformElementTextField on WebformElementTextfield { __typename - key - type - title - description - required { - message + metadata { + key + type + title + description + required { + message + } } readonly size diff --git a/tests/queries/unexposed.gql b/tests/queries/unexposed.gql index 2cb036cf9a23ef11f81e3f109833e0f46dbee8fd..4ba108048dca08ae31d51a605e1f0e9cf54f4fc3 100644 --- a/tests/queries/unexposed.gql +++ b/tests/queries/unexposed.gql @@ -1,8 +1,11 @@ fragment webformElement on WebformElementUnexposed { __typename - key - type - title + metadata { + __typename + key + type + title + } } fragment webform on Webform { diff --git a/tests/src/Kernel/Element/ActionsTest.php b/tests/src/Kernel/Element/ActionsTest.php index 9b8f54c9ec174fa6ea907c0bcf898db12a64d804..7941bf56e0ae08e4252b4bb759cb87a652c7c913 100644 --- a/tests/src/Kernel/Element/ActionsTest.php +++ b/tests/src/Kernel/Element/ActionsTest.php @@ -26,9 +26,12 @@ class ActionsTest extends GraphQLWebformKernelTestBase { [ '__typename' => 'WebformElementWebformActions', 'submitLabel' => 'Set sail for adventure', - 'key' => 'actions', - 'type' => 'webform_actions', - 'title' => 'Submit button(s)', + 'metadata' => [ + 'key' => 'actions', + 'type' => 'webform_actions', + 'title' => 'Submit button(s)', + '__typename' => 'WebformElementMetadata', + ], ], ], ], diff --git a/tests/src/Kernel/Element/CheckboxesTest.php b/tests/src/Kernel/Element/CheckboxesTest.php index 9b5e2f13ff8e6afbc5f29595d6d88b0bba037108..c11fa0e80b68905ba7233d5f680f47670f80eb24 100644 --- a/tests/src/Kernel/Element/CheckboxesTest.php +++ b/tests/src/Kernel/Element/CheckboxesTest.php @@ -36,9 +36,11 @@ class CheckboxesTest extends GraphQLWebformKernelTestBase { 'description' => 'The outer moon of Mars.', ], ], - 'key' => 'checkboxes', - 'title' => 'Checkboxes', - 'description' => 'Choose your moons.', + 'metadata' => [ + 'key' => 'checkboxes', + 'title' => 'Checkboxes', + 'description' => 'Choose your moons.', + ], ], ], ], diff --git a/tests/src/Kernel/Element/FieldsetTest.php b/tests/src/Kernel/Element/FieldsetTest.php index 49de52c595d186b91689073137a3fd200cfe01c2..c0a8ee811b6a4f963a430b1249ff2c2c0884c364 100644 --- a/tests/src/Kernel/Element/FieldsetTest.php +++ b/tests/src/Kernel/Element/FieldsetTest.php @@ -26,12 +26,16 @@ class FieldsetTest extends GraphQLWebformKernelTestBase { '__typename' => 'WebformElementFieldset', 'elements' => [ 0 => [ - 'key' => 'checkbox2', - 'type' => 'checkbox', + 'metadata' => [ + 'key' => 'checkbox2', + 'type' => 'checkbox', + ], ], ], - 'key' => 'fieldset', - 'type' => 'fieldset', + 'metadata' => [ + 'key' => 'fieldset', + 'type' => 'fieldset', + ], ], ], ], diff --git a/tests/src/Kernel/Element/FlexboxTest.php b/tests/src/Kernel/Element/FlexboxTest.php index c98cb861f9d8244bb30c19bbf4593d8b74fef509..a007ba1233d9bc5907c7019b476ae1e42977dc74 100644 --- a/tests/src/Kernel/Element/FlexboxTest.php +++ b/tests/src/Kernel/Element/FlexboxTest.php @@ -27,14 +27,20 @@ class FlexboxTest extends GraphQLWebformKernelTestBase { 'alignItems' => 'center', 'elements' => [ 0 => [ - 'key' => 'checkbox', + 'metadata' => [ + 'key' => 'checkbox', + ], ], 1 => [ - 'key' => 'time', + 'metadata' => [ + 'key' => 'time', + ], ], ], - 'key' => 'flexbox', - 'type' => 'webform_flexbox', + 'metadata' => [ + 'key' => 'flexbox', + 'type' => 'webform_flexbox', + ], ], ], ], diff --git a/tests/src/Kernel/Element/ManagedFileTest.php b/tests/src/Kernel/Element/ManagedFileTest.php index 7eab946b473e747f97899d2b320f938ae3f0c55b..b5081ee72d07b084713c118c7012777d10d2cfc5 100644 --- a/tests/src/Kernel/Element/ManagedFileTest.php +++ b/tests/src/Kernel/Element/ManagedFileTest.php @@ -36,19 +36,25 @@ class ManagedFileTest extends GraphQLWebformKernelTestBase { '__typename' => 'WebformElementManagedFile', 'maxFilesize' => $expectedFileLimit, 'fileExtensions' => 'gif jpg png txt', - 'key' => 'file_upload', - 'type' => 'managed_file', - 'title' => 'File upload', - 'description' => "Description<br />One file only.<br />$human_readable_file_limit limit.<br />Allowed types: gif jpg png txt.\n", + 'metadata' => [ + '__typename' => 'WebformElementMetadata', + 'key' => 'file_upload', + 'type' => 'managed_file', + 'title' => 'File upload', + 'description' => "Description<br />One file only.<br />$human_readable_file_limit limit.<br />Allowed types: gif jpg png txt.\n", + ], ], 11 => [ '__typename' => 'WebformElementWebformAudioFile', 'maxFilesize' => $expectedAudioFileLimit, 'fileExtensions' => 'mp3 ogg wav', - 'key' => 'audio_files', - 'type' => 'webform_audio_file', - 'title' => 'Audio files', - 'description' => "Maximum 2 files.<br />$human_readable_audio_file_limit limit.<br />Allowed types: mp3 ogg wav.\n", + 'metadata' => [ + '__typename' => 'WebformElementMetadata', + 'key' => 'audio_files', + 'type' => 'webform_audio_file', + 'title' => 'Audio files', + 'description' => "Maximum 2 files.<br />$human_readable_audio_file_limit limit.<br />Allowed types: mp3 ogg wav.\n", + ], ], ], ], diff --git a/tests/src/Kernel/Element/MarkupTest.php b/tests/src/Kernel/Element/MarkupTest.php index ae5e72f3a3e897c3ab2d2b1a7a3c16cb21d9917c..c80fc6c27a27db1203ed9a8600ccdeae4c789e3a 100644 --- a/tests/src/Kernel/Element/MarkupTest.php +++ b/tests/src/Kernel/Element/MarkupTest.php @@ -56,11 +56,17 @@ class MarkupTest extends GraphQLWebformKernelTestBase { 'elements' => [ 5 => [ '__typename' => 'WebformElementWebformMarkup', + 'metadata' => [ + 'key' => 'markup', + ], 'markup' => '<strong>Markup</strong>', 'displayOn' => 'DISPLAY_ON_FORM', ], 14 => [ '__typename' => 'WebformElementProcessedText', + 'metadata' => [ + 'key' => 'processed_text', + ], // The '<em>' tag should be stripped out. 'markup' => '<p><strong>Processed text</strong></p>', 'displayOn' => 'DISPLAY_ON_BOTH', diff --git a/tests/src/Kernel/Element/RadiosTest.php b/tests/src/Kernel/Element/RadiosTest.php index daeb37ba1e72754e83858a33c2069122ab7f6e44..4e21231bb133b78deed2bf81e43e41c7c5a0894a 100644 --- a/tests/src/Kernel/Element/RadiosTest.php +++ b/tests/src/Kernel/Element/RadiosTest.php @@ -38,11 +38,13 @@ class RadiosTest extends GraphQLWebformKernelTestBase { 'description' => 'Broadcasts from Peru since 1964', ], ], - 'key' => 'radios', - 'type' => 'radios', - 'title' => 'Radios', - 'description' => 'Choose your favorite station.', - 'required' => NULL, + 'metadata' => [ + 'key' => 'radios', + 'type' => 'radios', + 'title' => 'Radios', + 'description' => 'Choose your favorite station.', + 'required' => NULL, + ], ], ], ], diff --git a/tests/src/Kernel/Element/RequiredElementTest.php b/tests/src/Kernel/Element/RequiredElementTest.php index 3010ff77f8a83921dacb409875d44e4e6bd4d3cb..1a7d5fd39d424e5738b6e92bed7f05fbac69135f 100644 --- a/tests/src/Kernel/Element/RequiredElementTest.php +++ b/tests/src/Kernel/Element/RequiredElementTest.php @@ -24,8 +24,10 @@ class RequiredElementTest extends GraphQLWebformKernelTestBase { 'title' => 'GraphQL Webform test form', 'elements' => [ 0 => [ - 'required' => [ - 'message' => 'This field is required because it is important.', + 'metadata' => [ + 'required' => [ + 'message' => 'This field is required because it is important.', + ], ], ], ], @@ -43,7 +45,7 @@ class RequiredElementTest extends GraphQLWebformKernelTestBase { // fields are added or removed from the form. if (!empty($data['data']['form']['elements'])) { $elements = &$data['data']['form']['elements']; - $elements = array_filter($elements, fn ($value) => !empty($value['required'])); + $elements = array_filter($elements, fn ($value) => !empty($value['metadata']['required'])); } $this->assertArrayHasKey('data', $data, 'No result data.'); diff --git a/tests/src/Kernel/Element/SelectTest.php b/tests/src/Kernel/Element/SelectTest.php index 483cd68ca3fdd0b76345d35f8042ab99ab86ef98..6eafa0207ca6a5fbed284daf1cb7578190169081 100644 --- a/tests/src/Kernel/Element/SelectTest.php +++ b/tests/src/Kernel/Element/SelectTest.php @@ -24,9 +24,11 @@ class SelectTest extends GraphQLWebformKernelTestBase { 'elements' => [ 8 => [ '__typename' => 'WebformElementSelect', - 'key' => 'select', - 'title' => 'Select', - 'description' => 'Choose wisely.', + 'metadata' => [ + 'key' => 'select', + 'title' => 'Select', + 'description' => 'Choose wisely.', + ], 'options' => [ 0 => [ 'title' => 'Option 1', @@ -47,9 +49,11 @@ class SelectTest extends GraphQLWebformKernelTestBase { ], 12 => [ '__typename' => 'WebformElementSelect', - 'key' => 'select_with_custom_empty_option', - 'title' => 'Select with custom empty option', - 'description' => NULL, + 'metadata' => [ + 'key' => 'select_with_custom_empty_option', + 'title' => 'Select with custom empty option', + 'description' => NULL, + ], 'options' => [ 0 => [ 'title' => 'Vegetarian', diff --git a/tests/src/Kernel/Element/TermSelectTest.php b/tests/src/Kernel/Element/TermSelectTest.php index 60077396879be94aea14e56c1ccabf9e2cc8acee..523687e1fab3c2df7c23a5f54e636088c96056fa 100644 --- a/tests/src/Kernel/Element/TermSelectTest.php +++ b/tests/src/Kernel/Element/TermSelectTest.php @@ -87,11 +87,13 @@ class TermSelectTest extends GraphQLWebformKernelTestBase { 'elements' => [ 9 => [ '__typename' => 'WebformElementWebformTermSelect', - 'key' => 'term_select', - 'type' => 'webform_term_select', - 'title' => 'Term select', - 'description' => 'Select one or two tags.', - 'multiple' => 2, + 'metadata' => [ + 'key' => 'term_select', + 'type' => 'webform_term_select', + 'title' => 'Term select', + 'description' => 'Select one or two tags.', + 'multiple' => 2, + ], 'options' => $expected_term_options, ], ], diff --git a/tests/src/Kernel/Element/TextAreaTest.php b/tests/src/Kernel/Element/TextAreaTest.php index 8ac4803f72438c5be579c2cca35e27605af5d273..eaca006bf88f735369a466c9a4a9ffe4c679ba26 100644 --- a/tests/src/Kernel/Element/TextAreaTest.php +++ b/tests/src/Kernel/Element/TextAreaTest.php @@ -24,11 +24,13 @@ class TextAreaTest extends GraphQLWebformKernelTestBase { 'elements' => [ 4 => [ '__typename' => 'WebformElementTextarea', - 'key' => 'textarea', - 'type' => 'textarea', - 'title' => 'Textarea', - 'description' => 'Tell us a bit more about yourself.', - 'required' => NULL, + 'metadata' => [ + 'key' => 'textarea', + 'type' => 'textarea', + 'title' => 'Textarea', + 'description' => 'Tell us a bit more about yourself.', + 'required' => NULL, + ], 'readonly' => FALSE, 'size' => 100, 'minlength' => 20, diff --git a/tests/src/Kernel/Element/TextFieldTest.php b/tests/src/Kernel/Element/TextFieldTest.php index c7d64669705877c387bb27ab987fcea8d9b301eb..8d5731724825f2bb81c461551855dbd72743b40c 100644 --- a/tests/src/Kernel/Element/TextFieldTest.php +++ b/tests/src/Kernel/Element/TextFieldTest.php @@ -24,12 +24,14 @@ class TextFieldTest extends GraphQLWebformKernelTestBase { 'elements' => [ 0 => [ '__typename' => 'WebformElementTextfield', - 'key' => 'required_text_field', - 'type' => 'textfield', - 'title' => 'Required text field', - 'description' => 'The description of the required text field.', - 'required' => [ - 'message' => 'This field is required because it is important.', + 'metadata' => [ + 'key' => 'required_text_field', + 'type' => 'textfield', + 'title' => 'Required text field', + 'description' => 'The description of the required text field.', + 'required' => [ + 'message' => 'This field is required because it is important.', + ], ], 'readonly' => FALSE, 'size' => 10, @@ -45,11 +47,13 @@ class TextFieldTest extends GraphQLWebformKernelTestBase { ], 1 => [ '__typename' => 'WebformElementTextfield', - 'key' => 'optional_text_field', - 'type' => 'textfield', - 'title' => 'Optional text field', - 'description' => NULL, - 'required' => NULL, + 'metadata' => [ + 'key' => 'optional_text_field', + 'type' => 'textfield', + 'title' => 'Optional text field', + 'description' => NULL, + 'required' => NULL, + ], 'readonly' => FALSE, 'size' => 60, 'minlength' => NULL, @@ -64,11 +68,13 @@ class TextFieldTest extends GraphQLWebformKernelTestBase { ], 13 => [ '__typename' => 'WebformElementTextfield', - 'key' => '2_years', - 'type' => 'textfield', - 'title' => 'Minimum 2 years, maximum 6', - 'description' => '', - 'required' => NULL, + 'metadata' => [ + 'key' => '2_years', + 'type' => 'textfield', + 'title' => 'Minimum 2 years, maximum 6', + 'description' => '', + 'required' => NULL, + ], 'readonly' => FALSE, 'size' => 60, 'minlength' => NULL, diff --git a/tests/src/Kernel/Element/UnexposedElementTest.php b/tests/src/Kernel/Element/UnexposedElementTest.php index a19d15343edf6a5c69933f21c33c7db338cb8916..ea2427ce8ddc617f8412bccec7c8bbdcafe8eb5a 100644 --- a/tests/src/Kernel/Element/UnexposedElementTest.php +++ b/tests/src/Kernel/Element/UnexposedElementTest.php @@ -27,9 +27,12 @@ class UnexposedElementTest extends GraphQLWebformKernelTestBase { 'elements' => [ 3 => [ '__typename' => 'WebformElementUnexposed', - 'key' => 'unsupported_field', - 'type' => 'webform_element', - 'title' => 'Unsupported field', + 'metadata' => [ + 'key' => 'unsupported_field', + 'type' => 'webform_element', + 'title' => 'Unsupported field', + '__typename' => 'WebformElementMetadata', + ], ], ], ],