@@ -104,6 +104,38 @@ export function describeAztecMultiMap(
104104 expect ( await size ( ) ) . to . equal ( 1 ) ;
105105 } ) ;
106106
107+ it ( 'returns 0 for empty multimap size' , async ( ) => {
108+ expect ( await size ( ) ) . to . equal ( 0 ) ;
109+ } ) ;
110+
111+ it ( 'calculates size correctly with multiple values per key' , async ( ) => {
112+ expect ( await size ( ) ) . to . equal ( 0 ) ;
113+
114+ // Add multiple values for same key
115+ await multiMap . set ( 'key1' , 'value1' ) ;
116+ expect ( await size ( ) ) . to . equal ( 1 ) ;
117+ await multiMap . set ( 'key1' , 'value2' ) ;
118+ expect ( await size ( ) ) . to . equal ( 2 ) ;
119+ await multiMap . set ( 'key1' , 'value3' ) ;
120+ expect ( await size ( ) ) . to . equal ( 3 ) ;
121+
122+ // Add values for different key
123+ await multiMap . set ( 'key2' , 'value4' ) ;
124+ expect ( await size ( ) ) . to . equal ( 4 ) ;
125+
126+ // Delete one value from key1
127+ await multiMap . deleteValue ( 'key1' , 'value2' ) ;
128+ expect ( await size ( ) ) . to . equal ( 3 ) ;
129+
130+ // Delete entire key
131+ await multiMap . delete ( 'key1' ) ;
132+ expect ( await size ( ) ) . to . equal ( 1 ) ;
133+
134+ // Delete last key
135+ await multiMap . delete ( 'key2' ) ;
136+ expect ( await size ( ) ) . to . equal ( 0 ) ;
137+ } ) ;
138+
107139 it ( 'should be able to iterate over entries when there are no keys' , async ( ) => {
108140 expect ( await entries ( ) ) . to . deep . equal ( [ ] ) ;
109141 } ) ;
0 commit comments