@@ -714,7 +714,16 @@ describe('Schema details generation', () => {
714
714
expect ( extensionPath [ 'x-attKey3' ] ) . to . deep . equal ( null ) ;
715
715
expect ( extensionPath [ 'x-attKey4' ] ) . to . deep . equal ( { test : 'testVal' } ) ;
716
716
expect ( extensionPath [ 'x-attKey5' ] ) . to . deep . equal ( [ 'y0' , 'y1' , 123 , true , null ] ) ;
717
- expect ( extensionPath [ 'x-attKey6' ] ) . to . deep . equal ( [ { y0 : 'yt0' , y1 : 'yt1' , y2 : 123 , y3 : true , y4 : null } , { y2 : 'yt2' } ] ) ;
717
+ expect ( extensionPath [ 'x-attKey6' ] ) . to . deep . equal ( [
718
+ {
719
+ y0 : 'yt0' ,
720
+ y1 : 'yt1' ,
721
+ y2 : 123 ,
722
+ y3 : true ,
723
+ y4 : null ,
724
+ } ,
725
+ { y2 : 'yt2' } ,
726
+ ] ) ;
718
727
expect ( extensionPath [ 'x-attKey7' ] ) . to . deep . equal ( { test : [ 'testVal' , 123 , true , null ] } ) ;
719
728
expect ( extensionPath [ 'x-attKey8' ] ) . to . deep . equal ( { test : { testArray : [ 'testVal1' , true , null , [ 'testVal2' , 'testVal3' , 123 , true , null ] ] } } ) ;
720
729
expect ( extensionPath [ 'x-attKey10' ] ) . to . deep . equal ( [ 'testVal1' , 'testVal2' , 123 , true , null ] ) ;
@@ -839,7 +848,13 @@ describe('Schema details generation', () => {
839
848
expect ( schema ) . to . deep . eq ( {
840
849
properties : {
841
850
account : { $ref : '#/definitions/Account' , format : undefined , description : undefined , example : undefined } ,
842
- defaultValue2 : { type : 'string' , default : 'Default Value 2' , description : undefined , format : undefined , example : undefined } ,
851
+ defaultValue2 : {
852
+ type : 'string' ,
853
+ default : 'Default Value 2' ,
854
+ description : undefined ,
855
+ format : undefined ,
856
+ example : undefined ,
857
+ } ,
843
858
enumKeys : {
844
859
default : undefined ,
845
860
description : undefined ,
@@ -849,11 +864,40 @@ describe('Schema details generation', () => {
849
864
type : 'string' ,
850
865
'x-nullable' : false ,
851
866
} ,
852
- keyInterface : { type : 'string' , default : undefined , description : undefined , format : undefined , example : undefined , enum : [ 'id' ] , 'x-nullable' : false } ,
853
- indexedType : { type : 'string' , default : undefined , description : undefined , format : undefined , example : undefined } ,
854
- indexedTypeToInterface : { $ref : '#/definitions/IndexedInterface' , description : undefined , format : undefined , example : undefined } ,
855
- indexedTypeToClass : { $ref : '#/definitions/IndexedClass' , description : undefined , format : undefined , example : undefined } ,
856
- indexedTypeToAlias : { $ref : '#/definitions/IndexedInterface' , description : undefined , format : undefined , example : undefined } ,
867
+ keyInterface : {
868
+ type : 'string' ,
869
+ default : undefined ,
870
+ description : undefined ,
871
+ format : undefined ,
872
+ example : undefined ,
873
+ enum : [ 'id' ] ,
874
+ 'x-nullable' : false ,
875
+ } ,
876
+ indexedType : {
877
+ type : 'string' ,
878
+ default : undefined ,
879
+ description : undefined ,
880
+ format : undefined ,
881
+ example : undefined ,
882
+ } ,
883
+ indexedTypeToInterface : {
884
+ $ref : '#/definitions/IndexedInterface' ,
885
+ description : undefined ,
886
+ format : undefined ,
887
+ example : undefined ,
888
+ } ,
889
+ indexedTypeToClass : {
890
+ $ref : '#/definitions/IndexedClass' ,
891
+ description : undefined ,
892
+ format : undefined ,
893
+ example : undefined ,
894
+ } ,
895
+ indexedTypeToAlias : {
896
+ $ref : '#/definitions/IndexedInterface' ,
897
+ description : undefined ,
898
+ format : undefined ,
899
+ example : undefined ,
900
+ } ,
857
901
indexedResponse : {
858
902
$ref : '#/definitions/Record_id.string_' ,
859
903
description : undefined ,
@@ -895,7 +939,15 @@ describe('Schema details generation', () => {
895
939
example : 'classPropExample' ,
896
940
title : 'Example title' ,
897
941
} ,
898
- optionalPublicStringProperty : { type : 'string' , minLength : 0 , maxLength : 10 , default : undefined , description : undefined , format : undefined , example : undefined } ,
942
+ optionalPublicStringProperty : {
943
+ type : 'string' ,
944
+ minLength : 0 ,
945
+ maxLength : 10 ,
946
+ default : undefined ,
947
+ description : undefined ,
948
+ format : undefined ,
949
+ example : undefined ,
950
+ } ,
899
951
emailPattern : {
900
952
type : 'string' ,
901
953
default : undefined ,
@@ -904,12 +956,54 @@ describe('Schema details generation', () => {
904
956
pattern : '^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$' ,
905
957
example : undefined ,
906
958
} ,
907
- stringProperty : { type : 'string' , default : undefined , description : undefined , format : undefined , example : undefined } ,
908
- deprecated1 : { type : 'boolean' , default : undefined , description : undefined , format : undefined , example : undefined , 'x-deprecated' : true } ,
909
- deprecated2 : { type : 'boolean' , default : undefined , description : undefined , format : undefined , example : undefined , 'x-deprecated' : true } ,
910
- extensionTest : { type : 'boolean' , default : undefined , description : undefined , format : undefined , example : undefined , 'x-key-1' : 'value-1' , 'x-key-2' : 'value-2' } ,
911
- extensionComment : { type : 'boolean' , default : undefined , description : undefined , format : undefined , example : undefined , 'x-key-1' : 'value-1' , 'x-key-2' : 'value-2' } ,
912
- stringExample : { type : 'string' , default : undefined , description : undefined , format : undefined , example : 'stringValue' } ,
959
+ stringProperty : {
960
+ type : 'string' ,
961
+ default : undefined ,
962
+ description : undefined ,
963
+ format : undefined ,
964
+ example : undefined ,
965
+ } ,
966
+ deprecated1 : {
967
+ type : 'boolean' ,
968
+ default : undefined ,
969
+ description : undefined ,
970
+ format : undefined ,
971
+ example : undefined ,
972
+ 'x-deprecated' : true ,
973
+ } ,
974
+ deprecated2 : {
975
+ type : 'boolean' ,
976
+ default : undefined ,
977
+ description : undefined ,
978
+ format : undefined ,
979
+ example : undefined ,
980
+ 'x-deprecated' : true ,
981
+ } ,
982
+ extensionTest : {
983
+ type : 'boolean' ,
984
+ default : undefined ,
985
+ description : undefined ,
986
+ format : undefined ,
987
+ example : undefined ,
988
+ 'x-key-1' : 'value-1' ,
989
+ 'x-key-2' : 'value-2' ,
990
+ } ,
991
+ extensionComment : {
992
+ type : 'boolean' ,
993
+ default : undefined ,
994
+ description : undefined ,
995
+ format : undefined ,
996
+ example : undefined ,
997
+ 'x-key-1' : 'value-1' ,
998
+ 'x-key-2' : 'value-2' ,
999
+ } ,
1000
+ stringExample : {
1001
+ type : 'string' ,
1002
+ default : undefined ,
1003
+ description : undefined ,
1004
+ format : undefined ,
1005
+ example : 'stringValue' ,
1006
+ } ,
913
1007
objectExample : {
914
1008
type : 'object' ,
915
1009
default : undefined ,
@@ -937,13 +1031,51 @@ describe('Schema details generation', () => {
937
1031
} ,
938
1032
required : [ 'label' , 'id' ] ,
939
1033
} ,
940
- publicConstructorVar : { type : 'string' , default : undefined , description : 'This is a description for publicConstructorVar' , format : undefined , example : undefined } ,
941
- readonlyConstructorArgument : { type : 'string' , default : undefined , description : undefined , format : undefined , example : undefined } ,
942
- optionalPublicConstructorVar : { type : 'string' , default : undefined , description : undefined , format : undefined , example : undefined } ,
943
- deprecatedPublicConstructorVar : { type : 'boolean' , default : undefined , description : undefined , format : undefined , example : undefined , 'x-deprecated' : true } ,
944
- deprecatedPublicConstructorVar2 : { type : 'boolean' , default : undefined , description : undefined , format : undefined , example : undefined , 'x-deprecated' : true } ,
1034
+ publicConstructorVar : {
1035
+ type : 'string' ,
1036
+ default : undefined ,
1037
+ description : 'This is a description for publicConstructorVar' ,
1038
+ format : undefined ,
1039
+ example : undefined ,
1040
+ } ,
1041
+ readonlyConstructorArgument : {
1042
+ type : 'string' ,
1043
+ default : undefined ,
1044
+ description : undefined ,
1045
+ format : undefined ,
1046
+ example : undefined ,
1047
+ } ,
1048
+ optionalPublicConstructorVar : {
1049
+ type : 'string' ,
1050
+ default : undefined ,
1051
+ description : undefined ,
1052
+ format : undefined ,
1053
+ example : undefined ,
1054
+ } ,
1055
+ deprecatedPublicConstructorVar : {
1056
+ type : 'boolean' ,
1057
+ default : undefined ,
1058
+ description : undefined ,
1059
+ format : undefined ,
1060
+ example : undefined ,
1061
+ 'x-deprecated' : true ,
1062
+ } ,
1063
+ deprecatedPublicConstructorVar2 : {
1064
+ type : 'boolean' ,
1065
+ default : undefined ,
1066
+ description : undefined ,
1067
+ format : undefined ,
1068
+ example : undefined ,
1069
+ 'x-deprecated' : true ,
1070
+ } ,
945
1071
id : { type : 'number' , format : 'double' , default : undefined , description : undefined , example : undefined } ,
946
- defaultValue1 : { type : 'string' , default : 'Default Value 1' , description : undefined , format : undefined , example : undefined } ,
1072
+ defaultValue1 : {
1073
+ type : 'string' ,
1074
+ default : 'Default Value 1' ,
1075
+ description : undefined ,
1076
+ format : undefined ,
1077
+ example : undefined ,
1078
+ } ,
947
1079
} ,
948
1080
required : [ 'account' , 'enumKeys' , 'publicStringProperty' , 'stringProperty' , 'publicConstructorVar' , 'readonlyConstructorArgument' , 'id' ] ,
949
1081
type : 'object' ,
@@ -1006,9 +1138,19 @@ describe('Schema details generation', () => {
1006
1138
1007
1139
const method = spec . paths [ '/ParameterTest/FormDataStringType' ] . get ?. parameters ?? [ ] ;
1008
1140
1009
- expect ( method ) . to . have . lengthOf ( 1 ) ;
1010
- const queryParam = method [ 0 ] ;
1011
- expect ( queryParam . in ) . to . equal ( 'formData' ) ;
1141
+ expect ( method ) . to . have . lengthOf ( 3 ) ;
1142
+ const [ data , indexes , gender ] = method ;
1143
+
1144
+ expect ( data . in ) . to . equal ( 'formData' ) ;
1145
+ expect ( data . type ) . to . equal ( 'string' ) ;
1146
+ // Can process numeric enum
1147
+ expect ( indexes . in ) . to . equal ( 'formData' ) ;
1148
+ expect ( indexes . type ) . to . equal ( 'number' ) ;
1149
+ expect ( indexes . enum ) . to . deep . equal ( [ 0 , 2 , 5 ] ) ;
1150
+ // Can process string enum
1151
+ expect ( gender . in ) . to . equal ( 'formData' ) ;
1152
+ expect ( gender . type ) . to . equal ( 'string' ) ;
1153
+ expect ( gender . enum ) . to . deep . equal ( [ 'MALE' , 'FEMALE' ] ) ;
1012
1154
} ) ;
1013
1155
} ) ;
1014
1156
0 commit comments