@@ -105,4 +105,49 @@ describe('encode/decode roundtrip', () => {
105105 } ;
106106 expect ( decode ( encode ( obj ) ) ) . toEqual ( obj ) ;
107107 } ) ;
108+ } ) ;
109+
110+ describe ( 'root-level arrays' , ( ) => {
111+ it ( 'handles simple arrays' , ( ) => {
112+ const arr = [ 1 , 2 , 3 ] ;
113+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
114+ } ) ;
115+
116+ it ( 'handles empty arrays' , ( ) => {
117+ const arr : unknown [ ] = [ ] ;
118+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
119+ } ) ;
120+
121+ it ( 'handles arrays with strings' , ( ) => {
122+ const arr = [ 'hello' , 'world' ] ;
123+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
124+ } ) ;
125+
126+ it ( 'handles arrays with mixed types' , ( ) => {
127+ const arr = [ 1 , 'two' , true , null , 3.14 ] ;
128+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
129+ } ) ;
130+
131+ it ( 'handles nested arrays' , ( ) => {
132+ const arr = [ [ 1 , 2 ] , [ 3 , 4 ] , [ 5 , 6 ] ] ;
133+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
134+ } ) ;
135+
136+ it ( 'handles arrays with objects' , ( ) => {
137+ const arr = [ { a : 1 } , { b : 2 } , { c : 3 } ] ;
138+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
139+ } ) ;
140+
141+ it ( 'handles deeply nested structures in arrays' , ( ) => {
142+ const arr = [
143+ { user : { name : 'Alice' , tags : [ 'admin' , 'active' ] } } ,
144+ { user : { name : 'Bob' , tags : [ 'guest' ] } }
145+ ] ;
146+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
147+ } ) ;
148+
149+ it ( 'handles arrays with unicode' , ( ) => {
150+ const arr = [ '🎉' , '中文' , 'hello 世界' ] ;
151+ expect ( decode ( encode ( arr ) ) ) . toEqual ( arr ) ;
152+ } ) ;
108153} ) ;
0 commit comments