@@ -76,4 +76,41 @@ describe('Issue #80 - Polymorphic serializer', () => {
76
76
expect ( data . data [ 0 ] . id ) . toEqual ( '1' ) ;
77
77
expect ( data . data [ 0 ] . type ) . toEqual ( 'Model1' ) ;
78
78
} ) ;
79
+
80
+ it ( 'should correctly handle empty input' , async ( ) => {
81
+ const Model1Serializer = new Serializer < Model1 > ( 'Model1' ) ;
82
+ const Model2Serializer = new Serializer < Model2 > ( 'Model2' ) ;
83
+
84
+ const PolySerializer = new PolymorphicSerializer < Model > ( 'Model' , 'type' , {
85
+ 'type:Model1' : Model1Serializer ,
86
+ 'type:Model2' : Model2Serializer ,
87
+ } ) ;
88
+
89
+ const data = ( await PolySerializer . serialize ( [ ] ) ) as {
90
+ data : Resource < Model > ;
91
+ } ;
92
+
93
+ expect ( data . data ) . toBeInstanceOf ( Array ) ;
94
+ expect ( data . data ) . toHaveLength ( 0 ) ;
95
+ } ) ;
96
+
97
+ it ( 'should correctly handle non-array input' , async ( ) => {
98
+ const model1 : Model1 = new Model1 ( '1' , 'model1' ) ;
99
+
100
+ const Model1Serializer = new Serializer < Model1 > ( 'Model1' ) ;
101
+ const Model2Serializer = new Serializer < Model2 > ( 'Model2' ) ;
102
+
103
+ const PolySerializer = new PolymorphicSerializer < Model > ( 'Model' , 'type' , {
104
+ 'type:Model1' : Model1Serializer ,
105
+ 'type:Model2' : Model2Serializer ,
106
+ } ) ;
107
+
108
+ const data = ( await PolySerializer . serialize ( model1 ) ) as {
109
+ data : Resource < Model > ;
110
+ } ;
111
+
112
+ expect ( data . data ) . toBeInstanceOf ( Resource ) ;
113
+ expect ( data . data . id ) . toEqual ( '1' ) ;
114
+ expect ( data . data . type ) . toEqual ( 'Model1' ) ;
115
+ } ) ;
79
116
} ) ;
0 commit comments