@@ -147,4 +147,27 @@ describe('cache', () => {
147147 expect ( items2 ) . toHaveLength ( 1 )
148148 expect ( items2 [ 0 ] ) . toEqual ( { id : 2 , label : 'Woof' } )
149149 } )
150+
151+ it ( 'should limit the number of items' , ( ) => {
152+ const cache = createCache ( { getStore } )
153+ cache . writeItem ( { model : mockModel , key : 1 , item : { id : 1 , label : 'Item 1' } , marker : 'testMarker' } )
154+ cache . writeItem ( { model : mockModel , key : 2 , item : { id : 2 , label : 'Item 2' } , marker : 'testMarker' } )
155+ cache . writeItem ( { model : mockModel , key : 3 , item : { id : 3 , label : 'Item 3' } , marker : 'testMarker' } )
156+
157+ const items = cache . readItems ( { model : mockModel , marker : 'testMarker' , limit : 2 } )
158+ expect ( items ) . toHaveLength ( 2 )
159+ expect ( items [ 0 ] ) . toEqual ( { id : 1 , label : 'Item 1' } )
160+ expect ( items [ 1 ] ) . toEqual ( { id : 2 , label : 'Item 2' } )
161+ } )
162+
163+ it ( 'should filter and limit the items' , ( ) => {
164+ const cache = createCache ( { getStore } )
165+ cache . writeItem ( { model : mockModel , key : 1 , item : { id : 1 , label : 'Meow' } , marker : 'testMarker' } )
166+ cache . writeItem ( { model : mockModel , key : 2 , item : { id : 2 , label : 'Woof' } , marker : 'testMarker' } )
167+ cache . writeItem ( { model : mockModel , key : 3 , item : { id : 3 , label : 'Meow' } , marker : 'testMarker' } )
168+
169+ const items = cache . readItems ( { model : mockModel , marker : 'testMarker' , filter : item => item . label === 'Meow' , limit : 1 } )
170+ expect ( items ) . toHaveLength ( 1 )
171+ expect ( items [ 0 ] ) . toEqual ( { id : 1 , label : 'Meow' } )
172+ } )
150173} )
0 commit comments