Skip to content

Commit 47f8d38

Browse files
authored
Merge branch 'master' into patch-1
2 parents 6340177 + 6f87cf0 commit 47f8d38

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

src/Transformer/ArgumentsTransformer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private function populateObject(Type $type, $data, bool $multiple, ResolveInfo $
102102
$fields = $type->getFields();
103103

104104
foreach ($fields as $name => $field) {
105-
if (!array_key_exists($name, $data)) {
105+
if ($field->defaultValueExists() && !array_key_exists($name, $data)) {
106106
continue;
107107
}
108108
$fieldData = $this->accessor->getValue($data, sprintf('[%s]', $name));

tests/Transformer/ArgumentsTransformerTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ public static function getTypes(): array
6161
'field1' => Type::string(),
6262
'field2' => Type::int(),
6363
'field3' => Type::boolean(),
64+
'field7' => Type::string(),
65+
'field8' => ['type' => Type::string(), 'defaultValue' => 'default_value_when_not_set_in_data'],
66+
'field9' => [
67+
'type' => Type::nonNull(Type::string()),
68+
'defaultValue' => 'default_value_when_not_set_in_data',
69+
],
6470
],
6571
]);
6672

@@ -128,6 +134,9 @@ public function testPopulating(): void
128134
$this->assertEquals($res->field4, 'default_value_when_not_set_in_data');
129135
$this->assertEquals($res->field5, []);
130136
$this->assertEquals($res->field6, null);
137+
$this->assertEquals($res->field7, null);
138+
$this->assertEquals($res->field8, 'default_value_when_not_set_in_data');
139+
$this->assertEquals($res->field9, 'default_value_when_not_set_in_data');
131140

132141
$data = [
133142
'field1' => [

tests/Transformer/InputType1.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,10 @@ final class InputType1
3535
* @var mixed
3636
*/
3737
public $field6;
38+
39+
public ?string $field7;
40+
41+
public ?string $field8 = 'default_value_when_not_set_in_data';
42+
43+
public string $field9 = 'default_value_when_not_set_in_data';
3844
}

0 commit comments

Comments
 (0)