Skip to content

Commit b7c00cf

Browse files
authored
[Fusion] Fixed validation rule "EnumTypeDefaultValueInaccessibleRule" (#8285)
1 parent 5b2696b commit b7c00cf

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

src/HotChocolate/Fusion-vnext/src/Fusion.Composition/PostMergeValidationRules/EnumTypeDefaultValueInaccessibleRule.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private static bool ValidateDefaultValue(
7575
switch (defaultValue)
7676
{
7777
case EnumValueNode enumValue:
78-
var enumType = (MutableEnumTypeDefinition)defaultType;
78+
var enumType = (MutableEnumTypeDefinition)defaultType.NullableType();
7979

8080
if (!enumType.Values.TryGetValue(enumValue.Value, out var value)
8181
|| value.HasFusionInaccessibleDirective())
@@ -88,7 +88,7 @@ private static bool ValidateDefaultValue(
8888
return true;
8989

9090
case ListValueNode listValue:
91-
var listType = (ListType)defaultType;
91+
var listType = (ListType)defaultType.NullableType();
9292

9393
foreach (var item in listValue.Items)
9494
{
@@ -103,7 +103,7 @@ private static bool ValidateDefaultValue(
103103
return true;
104104

105105
case ObjectValueNode objectValue:
106-
var inputObjectType = (MutableInputObjectTypeDefinition)defaultType;
106+
var inputObjectType = (MutableInputObjectTypeDefinition)defaultType.NullableType();
107107

108108
foreach (var field in objectValue.Fields)
109109
{

src/HotChocolate/Fusion-vnext/test/Fusion.Composition.Tests/PostMergeValidationRules/EnumTypeDefaultValueInaccessibleRuleTests.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,28 @@ enum Enum1 {
7373
}
7474
"""
7575
]
76+
},
77+
// Non-nullable default values.
78+
{
79+
[
80+
"""
81+
# Schema A
82+
type Query {
83+
field1(type: Enum1! = FOO): [Baz!]!
84+
field2(type: [Int!]! = [1]): [Baz!]!
85+
field3(type: Input1! = { field1: 1 }): [Baz!]!
86+
}
87+
88+
enum Enum1 {
89+
FOO
90+
BAR
91+
}
92+
93+
input Input1 {
94+
field1: Int!
95+
}
96+
"""
97+
]
7698
}
7799
};
78100
}

0 commit comments

Comments
 (0)