@@ -676,6 +676,19 @@ class VerifyYamlTest extends AnyFunSuite with Matchers {
676
676
actualYamlNoIndent shouldBe expectedYaml
677
677
}
678
678
679
+ test(" should mark optional fields as nullable when configured to do so using OpenAPI 3.0" ) {
680
+ case class ClassWithOptionField (optionalIntField : Option [Int ], requiredStringField : String )
681
+
682
+ val e = endpoint.in(jsonBody[ClassWithOptionField ]).out(stringBody)
683
+ val expectedYaml = load(" expected_nullable_option_field_303.yml" )
684
+
685
+ val options = OpenAPIDocsOptions .default.copy(markOptionsAsNullable = true )
686
+
687
+ val actualYaml = OpenAPIDocsInterpreter (options).toOpenAPI(e, Info (" ClassWithOptionField" , " 1.0" )).copy(openapi = " 3.0.3" ).toYaml3_0_3
688
+ val actualYamlNoIndent = noIndentation(actualYaml)
689
+ actualYamlNoIndent shouldBe expectedYaml
690
+ }
691
+
679
692
test(" should mark optional class fields as nullable when configured to do so" ) {
680
693
case class Bar (bar : Int )
681
694
case class ClassWithOptionClassField (optionalObjField : Option [Bar ], requiredStringField : String )
@@ -690,6 +703,21 @@ class VerifyYamlTest extends AnyFunSuite with Matchers {
690
703
actualYamlNoIndent shouldBe expectedYaml
691
704
}
692
705
706
+ test(" should mark optional class fields as nullable when configured to do so using OpenAPI 3.0" ) {
707
+ case class Bar (bar : Int )
708
+ case class ClassWithOptionClassField (optionalObjField : Option [Bar ], requiredStringField : String )
709
+
710
+ val e = endpoint.in(jsonBody[ClassWithOptionClassField ]).out(stringBody).post
711
+ val expectedYaml = load(" expected_nullable_option_class_field_303.yml" )
712
+
713
+ val options = OpenAPIDocsOptions .default.copy(markOptionsAsNullable = true )
714
+
715
+ val actualYaml =
716
+ OpenAPIDocsInterpreter (options).toOpenAPI(e, Info (" ClassWithOptionClassField" , " 1.0" )).copy(openapi = " 3.0.3" ).toYaml3_0_3
717
+ val actualYamlNoIndent = noIndentation(actualYaml)
718
+ actualYamlNoIndent shouldBe expectedYaml
719
+ }
720
+
693
721
test(" should generate default and example values for nested optional fields" ) {
694
722
case class Nested (nestedValue : String )
695
723
case class ClassWithNestedOptionalField (
0 commit comments